private static void delegate(CompletionParameters parameters, CompletionResultSet result, JavaCompletionSession session) {
    boolean added = false;
    if (parameters.getCompletionType() == CompletionType.BASIC) {
      PsiElement position = parameters.getPosition();
      added |= suggestCollectionUtilities(parameters, result, position);

      if (parameters.getInvocationCount() <= 1 &&
          (JavaCompletionContributor.mayStartClassName(result) || suggestAllAnnotations(parameters)) &&
          JavaCompletionContributor.isClassNamePossible(parameters)) {
        suggestNonImportedClasses(parameters, result, session);
        return;
      }
      if (parameters.getInvocationCount() <= 1) { //case with >=2 in JavaCompletionContributor.fillCompletionVariants
        added |= suggestTagCalls(parameters, result, position);
      }
      added |= suggestChainedCalls(parameters, result, position);
    }

    if (parameters.getCompletionType() == CompletionType.SMART && parameters.getInvocationCount() == 2) {
      result.runRemainingContributors(parameters.withInvocationCount(3), true);
    }

    if (!added && parameters.getCompletionType() == CompletionType.BASIC && parameters.getInvocationCount() == 2) {
      JavaQualifierAsArgumentContributor.fillQualifierAsArgumentContributor(parameters.withInvocationCount(3), result);
    }
  }
private static void delegate(CompletionParameters parameters, CompletionResultSet result, JavaCompletionSession session)