@Override
    public boolean process(PsiClass aClass) {
      if (!DefaultSymbolNavigationContributor.isOpenable(aClass) || (!allowNonPhysicalClasses && !aClass.isPhysical())) {
        return true;
      }
      if (isAnnotation && !aClass.isAnnotationType()) return true;
      if (innerClassMatcher != null) {
        if (aClass.getContainingClass() == null) return true;
        String jvmQName = ClassUtil.getJVMClassName(aClass);
        if (jvmQName == null || !innerClassMatcher.matches(StringUtil.getShortName(jvmQName))) return true;
      }
      return processor.process(aClass);
    }
@Override
    public boolean process(PsiClass aClass)