private static boolean processRequireQualifiedNames()

in src/java/org/jetbrains/plugins/clojure/psi/impl/ImportOwner.java [394:422]


  private static boolean processRequireQualifiedNames(PsiScopeProcessor processor, PsiElement place, ClListLike child,
                                                      ClListLike listLike) {
    final PsiElement fst = listLike.getFirstNonLeafElement();
    if (fst instanceof ClSymbol) {
      PsiElement next = fst.getNextSibling();
      while (next != null) {
        if (next instanceof ClSymbol) {
          ClSymbol clazzSym = (ClSymbol) next;
          if (!checkRequireQualifier(processor, place, child, ((ClSymbol) fst).getNameString() + "." + clazzSym.getNameString())) {
            return false;
          }
        } else if (next instanceof ClVector) {
          ClVector vector = (ClVector) next;
          final ClSymbol[] symbols = vector.getAllSymbols();
          if (symbols.length > 0) {
            final ClSymbol symbol = symbols[0];
            if (isSpecialVector((ClVector) next, ClojureKeywords.AS) &&
                !processVectorAliasSymbols(processor, vector, symbol)) return false;
            if (!checkRequireQualifier(processor, place, child,
                ((ClSymbol) fst).getNameString() + "." + symbol.getNameString())) {
              return false;
            }
          }
        }
        next = next.getNextSibling();
      }
    }
    return true;
  }