@Override
      public void visitClass(@NotNull final RefClass refClass) {
        if (processor.getDescriptions(refClass) == null) return;
        if (!refClass.isAnonymous() && !PsiModifier.PRIVATE.equals(refClass.getAccessModifier())) {
          globalContext.enqueueDerivedClassesProcessor(refClass, inheritor -> {
            ignoreElement(processor, refClass);
            return false;
          });

          globalContext.enqueueClassUsagesProcessor(refClass, psiReference -> {
            ignoreElement(processor, refClass);
            return false;
          });

          final RefMethod defaultConstructor = refClass.getDefaultConstructor();
          if (entryPointsManager.isAddNonJavaEntries() && defaultConstructor != null) {
            final PsiClass psiClass = ObjectUtils.tryCast(refClass.getPsiElement(), PsiClass.class);
            String qualifiedName = psiClass != null ? psiClass.getQualifiedName() : null;
            if (qualifiedName != null) {
              final Project project = manager.getProject();
              PsiSearchHelper.getInstance(project)
                             .processUsagesInNonJavaFiles(qualifiedName, (file, startOffset, endOffset) -> {
                               entryPointsManager.addEntryPoint(defaultConstructor, false);
                               ignoreElement(processor, defaultConstructor);
                               return false;
                             }, GlobalSearchScope.projectScope(project));
            }
          }
        }
      }
@Override
      public void visitClass(@NotNull final RefClass refClass)