@Override
  public boolean process(PsiClass psiClass) {
    if (myParameters.getInvocationCount() < 2) {
      if (PsiReferenceExpressionImpl.seemsScrambled(psiClass) || JavaCompletionProcessor.seemsInternal(psiClass)) {
        return true;
      }
      String name = psiClass.getName();
      if (name != null && !name.isEmpty() && Character.isLowerCase(name.charAt(0)) &&
          !Registry.is("ide.completion.show.lower.case.classes")) {
        return true;
      }
    }

    assert psiClass != null;
    if (AllClassesGetter.isAcceptableInContext(myContext, psiClass, myFilterByScope, myPkgContext)) {
      String qName = psiClass.getQualifiedName();
      if (LOG.isDebugEnabled()) {
        LOG.debug("Processing class " + qName);
      }
      if (qName != null && qName.startsWith(myPackagePrefix) && myQNames.add(qName)) {
        if (!myProcessor.process(psiClass)) return false;
        if (++myCount > myLimit) {
          LOG.debug("Limit reached");
          return false;
        }
      }
    }
    return true;
  }
@Override
  public boolean process(PsiClass psiClass)