Java 类com.intellij.psi.scope.ElementClassFilter 实例源码

项目:intellij-ce-playground    文件:RecursionWeigher.java   
@Nullable
static ElementFilter recursionFilter(PsiElement element) {
  if (PsiJavaPatterns.psiElement().afterLeaf(PsiKeyword.RETURN).inside(PsiReturnStatement.class).accepts(element)) {
    return new ExcludeDeclaredFilter(ElementClassFilter.METHOD);
  }

  if (PsiJavaPatterns.psiElement().inside(
    StandardPatterns.or(
      PsiJavaPatterns.psiElement(PsiAssignmentExpression.class),
      PsiJavaPatterns.psiElement(PsiVariable.class))).
      andNot(PsiJavaPatterns.psiElement().afterLeaf(".")).accepts(element)) {
    return new AndFilter(new ExcludeSillyAssignment(),
                                                 new ExcludeDeclaredFilter(new ClassFilter(PsiVariable.class)));
  }
  return null;
}
项目:tools-idea    文件:RecursionWeigher.java   
@Nullable
static ElementFilter recursionFilter(PsiElement element) {
  if (PsiJavaPatterns.psiElement().afterLeaf(PsiKeyword.RETURN).inside(PsiReturnStatement.class).accepts(element)) {
    return new ExcludeDeclaredFilter(ElementClassFilter.METHOD);
  }

  if (PsiJavaPatterns.psiElement().inside(
    StandardPatterns.or(
      PsiJavaPatterns.psiElement(PsiAssignmentExpression.class),
      PsiJavaPatterns.psiElement(PsiVariable.class))).
      andNot(PsiJavaPatterns.psiElement().afterLeaf(".")).accepts(element)) {
    return new AndFilter(new ExcludeSillyAssignment(),
                                                 new ExcludeDeclaredFilter(new ClassFilter(PsiVariable.class)));
  }
  return null;
}
项目:consulo-java    文件:JavaCompletionContributor.java   
private static ElementFilter createAnnotationFilter(PsiElement position)
{
    OrFilter orFilter = new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE_FILTER, new AndFilter(new ClassFilter(PsiField.class), new ModifierFilter(PsiModifier.STATIC,
            PsiModifier.FINAL)));
    if(psiElement().insideStarting(psiNameValuePair()).accepts(position))
    {
        orFilter.addFilter(new ClassFilter(PsiAnnotationMethod.class)
        {
            @Override
            public boolean isAcceptable(Object element, PsiElement context)
            {
                return element instanceof PsiAnnotationMethod && PsiUtil.isAnnotationMethod((PsiElement) element);
            }
        });
    }
    return orFilter;
}
项目:intellij-ce-playground    文件:PsiJavaCodeReferenceElementImpl.java   
@Override
@NotNull
public Object[] getVariants() {
  final ElementFilter filter;
  switch (getKind(getContainingFile())) {
    case CLASS_OR_PACKAGE_NAME_KIND:
      filter = new OrFilter();
      ((OrFilter)filter).addFilter(ElementClassFilter.CLASS);
      ((OrFilter)filter).addFilter(ElementClassFilter.PACKAGE_FILTER);
      break;
    case CLASS_NAME_KIND:
      filter = ElementClassFilter.CLASS;
      break;
    case PACKAGE_NAME_KIND:
      filter = ElementClassFilter.PACKAGE_FILTER;
      break;
    case CLASS_FQ_NAME_KIND:
    case CLASS_FQ_OR_PACKAGE_NAME_KIND:
      filter = new OrFilter();
      ((OrFilter)filter).addFilter(ElementClassFilter.PACKAGE_FILTER);
      if (isQualified()) {
        ((OrFilter)filter).addFilter(ElementClassFilter.CLASS);
      }
      break;
    case CLASS_IN_QUALIFIED_NEW_KIND:
      filter = ElementClassFilter.CLASS;
      break;
    default:
      throw new RuntimeException("Unknown reference type");
  }

  return PsiImplUtil.getReferenceVariantsByFilter(this, filter);
}
项目:intellij-ce-playground    文件:PsiSwitchLabelStatementImpl.java   
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) {
  if (lastParent == null) return true;

  final PsiSwitchStatement switchStatement = getEnclosingSwitchStatement();
  if (switchStatement != null) {
    final PsiExpression expression = switchStatement.getExpression();
    if (expression != null && expression.getType() instanceof PsiClassType) {
      final PsiClass aClass = ((PsiClassType)expression.getType()).resolve();
      if(aClass != null) aClass.processDeclarations(new FilterScopeProcessor(ElementClassFilter.ENUM_CONST, processor), state, this, place);
    }
  }
  return true;
}
项目:intellij-ce-playground    文件:JavaCompletionContributor.java   
private static ElementFilter createAnnotationFilter(PsiElement position) {
  OrFilter orFilter = new OrFilter(ElementClassFilter.CLASS,
                                 ElementClassFilter.PACKAGE_FILTER,
                                 new AndFilter(new ClassFilter(PsiField.class),
                                               new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
  if (psiElement().insideStarting(psiNameValuePair()).accepts(position)) {
    orFilter.addFilter(new ClassFilter(PsiAnnotationMethod.class) {
      @Override
      public boolean isAcceptable(Object element, PsiElement context) {
        return element instanceof PsiAnnotationMethod && PsiUtil.isAnnotationMethod((PsiElement)element);
      }
    });
  }
  return orFilter;
}
项目:tools-idea    文件:PsiClassImplUtil.java   
@NotNull
private static MembersMap buildAllMaps(@NotNull PsiClass psiClass) {
  final List<Pair<PsiMember, PsiSubstitutor>> classes = new ArrayList<Pair<PsiMember, PsiSubstitutor>>();
  final List<Pair<PsiMember, PsiSubstitutor>> fields = new ArrayList<Pair<PsiMember, PsiSubstitutor>>();
  final List<Pair<PsiMember, PsiSubstitutor>> methods = new ArrayList<Pair<PsiMember, PsiSubstitutor>>();

  FilterScopeProcessor<MethodCandidateInfo> processor = new FilterScopeProcessor<MethodCandidateInfo>(
    new OrFilter(ElementClassFilter.METHOD, ElementClassFilter.FIELD, ElementClassFilter.CLASS)) {
    @Override
    protected void add(PsiElement element, PsiSubstitutor substitutor) {
      if (element instanceof PsiMethod) {
        methods.add(Pair.create((PsiMember)element, substitutor));
      }
      else if (element instanceof PsiField) {
        fields.add(Pair.create((PsiMember)element, substitutor));
      }
      else if (element instanceof PsiClass) {
        classes.add(Pair.create((PsiMember)element, substitutor));
      }
    }
  };
  processDeclarationsInClassNotCached(psiClass, processor, ResolveState.initial(), null, null, psiClass, false,
                                      PsiUtil.getLanguageLevel(psiClass));

  MembersMap result = new MembersMap(MemberType.class);
  result.put(MemberType.CLASS, generateMapByList(classes));
  result.put(MemberType.METHOD, generateMapByList(methods));
  result.put(MemberType.FIELD, generateMapByList(fields));
  return result;
}
项目:tools-idea    文件:PsiJavaCodeReferenceElementImpl.java   
@Override
@NotNull
public Object[] getVariants() {
  final ElementFilter filter;
  switch (getKind()) {

  case CLASS_OR_PACKAGE_NAME_KIND:
         filter = new OrFilter();
           ((OrFilter)filter).addFilter(ElementClassFilter.CLASS);
           ((OrFilter)filter).addFilter(ElementClassFilter.PACKAGE_FILTER);
         break;
  case CLASS_NAME_KIND:
         filter = ElementClassFilter.CLASS;
         break;
  case PACKAGE_NAME_KIND:
         filter = ElementClassFilter.PACKAGE_FILTER;
         break;
  case CLASS_FQ_NAME_KIND:
  case CLASS_FQ_OR_PACKAGE_NAME_KIND:
         filter = new OrFilter();
           ((OrFilter)filter).addFilter(ElementClassFilter.PACKAGE_FILTER);
         if (isQualified()) {
             ((OrFilter)filter).addFilter(ElementClassFilter.CLASS);
         }
         break;
  case CLASS_IN_QUALIFIED_NEW_KIND:
         filter = ElementClassFilter.CLASS;
         break;
  default:
         throw new RuntimeException("Unknown reference type");
  }

  return PsiImplUtil.getReferenceVariantsByFilter(this, filter);
}
项目:tools-idea    文件:PsiSwitchLabelStatementImpl.java   
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) {
  if (lastParent == null) return true;

  final PsiSwitchStatement switchStatement = getEnclosingSwitchStatement();
  if (switchStatement != null) {
    final PsiExpression expression = switchStatement.getExpression();
    if (expression != null && expression.getType() instanceof PsiClassType) {
      final PsiClass aClass = ((PsiClassType)expression.getType()).resolve();
      if(aClass != null) aClass.processDeclarations(new FilterScopeProcessor(ElementClassFilter.ENUM_CONST, processor), state, this, place);
    }
  }
  return true;
}
项目:tools-idea    文件:JavaCompletionContributor.java   
private static ElementFilter createAnnotationFilter(PsiElement position) {
  OrFilter orFilter = new OrFilter(ElementClassFilter.CLASS,
                                 ElementClassFilter.PACKAGE_FILTER,
                                 new AndFilter(new ClassFilter(PsiField.class),
                                               new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
  if (psiElement().insideStarting(psiNameValuePair()).accepts(position)) {
    orFilter.addFilter(new ClassFilter(PsiAnnotationMethod.class) {
      @Override
      public boolean isAcceptable(Object element, PsiElement context) {
        return element instanceof PsiAnnotationMethod && PsiUtil.isAnnotationMethod((PsiElement)element);
      }
    });
  }
  return orFilter;
}
项目:consulo-java    文件:PsiSwitchLabelStatementImpl.java   
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) {
  if (lastParent == null) return true;

  final PsiSwitchStatement switchStatement = getEnclosingSwitchStatement();
  if (switchStatement != null) {
    final PsiExpression expression = switchStatement.getExpression();
    if (expression != null && expression.getType() instanceof PsiClassType) {
      final PsiClass aClass = ((PsiClassType)expression.getType()).resolve();
      if(aClass != null) aClass.processDeclarations(new FilterScopeProcessor(ElementClassFilter.ENUM_CONST, processor), state, this, place);
    }
  }
  return true;
}
项目:consulo-java    文件:RecursionWeigher.java   
@Nullable
static ElementFilter recursionFilter(PsiElement element)
{
    if(PsiJavaPatterns.psiElement().afterLeaf(PsiKeyword.RETURN).inside(PsiReturnStatement.class).accepts(element))
    {
        return new ExcludeDeclaredFilter(ElementClassFilter.METHOD);
    }

    if(PsiJavaPatterns.psiElement().inside(StandardPatterns.or(PsiJavaPatterns.psiElement(PsiAssignmentExpression.class), PsiJavaPatterns.psiElement(PsiVariable.class))).
            andNot(PsiJavaPatterns.psiElement().afterLeaf(".")).accepts(element))
    {
        return new AndFilter(new ExcludeSillyAssignment(), new ExcludeDeclaredFilter(new ClassFilter(PsiVariable.class)));
    }
    return null;
}
项目:intellij-ce-playground    文件:PsiClassImplUtil.java   
@Nullable
@Override
protected Map<String, List<Pair<PsiMember, PsiSubstitutor>>> create(final MemberType key) {
  final Map<String, List<Pair<PsiMember, PsiSubstitutor>>> map = new THashMap<String, List<Pair<PsiMember, PsiSubstitutor>>>();

  final List<Pair<PsiMember, PsiSubstitutor>> allMembers = new ArrayList<Pair<PsiMember, PsiSubstitutor>>();
  map.put(ALL, allMembers);

  ElementClassFilter filter = key == MemberType.CLASS ? ElementClassFilter.CLASS :
                              key == MemberType.METHOD ? ElementClassFilter.METHOD :
                              ElementClassFilter.FIELD;
  final ElementClassHint classHint = new ElementClassHint() {
    @Override
    public boolean shouldProcess(DeclarationKind kind) {
      return key == MemberType.CLASS && kind == DeclarationKind.CLASS ||
             key == MemberType.FIELD && (kind == DeclarationKind.FIELD || kind == DeclarationKind.ENUM_CONST) ||
             key == MemberType.METHOD && kind == DeclarationKind.METHOD;
    }
  };
  FilterScopeProcessor<MethodCandidateInfo> processor = new FilterScopeProcessor<MethodCandidateInfo>(filter) {
    @Override
    protected void add(@NotNull PsiElement element, @NotNull PsiSubstitutor substitutor) {
      if (key == MemberType.CLASS && element instanceof PsiClass ||
          key == MemberType.METHOD && element instanceof PsiMethod ||
          key == MemberType.FIELD && element instanceof PsiField) {
        Pair<PsiMember, PsiSubstitutor> info = Pair.create((PsiMember)element, substitutor);
        allMembers.add(info);
        String currentName = ((PsiMember)element).getName();
        List<Pair<PsiMember, PsiSubstitutor>> listByName = map.get(currentName);
        if (listByName == null) {
          listByName = new ArrayList<Pair<PsiMember, PsiSubstitutor>>(1);
          map.put(currentName, listByName);
        }
        listByName.add(info);
      }
    }

    @Override
    public <K> K getHint(@NotNull Key<K> hintKey) {
      //noinspection unchecked
      return ElementClassHint.KEY == hintKey ? (K)classHint : super.getHint(hintKey);
    }
  };

  processDeclarationsInClassNotCached(myPsiClass, processor, ResolveState.initial(), null, null, myPsiClass, false,
                                      PsiUtil.getLanguageLevel(myPsiClass), myResolveScope);
  return map;
}
项目:intellij-ce-playground    文件:PsiMethodReferenceExpressionImpl.java   
@Override
public void processVariants(@NotNull final PsiScopeProcessor processor) {
  final FilterScopeProcessor proc = new FilterScopeProcessor(ElementClassFilter.METHOD, processor);
  PsiScopesUtil.resolveAndWalk(proc, this, null, true);
}
项目:intellij-ce-playground    文件:PsiDocMethodOrFieldRef.java   
public static PsiVariable[] getAllVariables(PsiElement scope, PsiElement place) {
  final SmartList<PsiVariable> result = new SmartList<PsiVariable>();
  scope.processDeclarations(new FilterScopeProcessor<PsiVariable>(ElementClassFilter.VARIABLE, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiVariable[result.size()]);
}
项目:intellij-ce-playground    文件:PsiDocMethodOrFieldRef.java   
public static PsiMethod[] getAllMethods(PsiElement scope, PsiElement place) {
  final SmartList<PsiMethod> result = new SmartList<PsiMethod>();
  scope.processDeclarations(new FilterScopeProcessor<PsiMethod>(ElementClassFilter.METHOD, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiMethod[result.size()]);
}
项目:intellij-ce-playground    文件:JavaCompletionContributor.java   
@Nullable
public static ElementFilter getReferenceFilter(PsiElement position) {
  // Completion after extends in interface, type parameter and implements in class
  final PsiClass containingClass = PsiTreeUtil.getParentOfType(position, PsiClass.class, false, PsiCodeBlock.class, PsiMethod.class, PsiExpressionList.class, PsiVariable.class, PsiAnnotation.class);
  if (containingClass != null && psiElement().afterLeaf(PsiKeyword.EXTENDS, PsiKeyword.IMPLEMENTS, ",", "&").accepts(position)) {
    return new AndFilter(ElementClassFilter.CLASS, new NotFilter(new AssignableFromContextFilter()));
  }

  if (ANNOTATION_NAME.accepts(position)) {
    return new AnnotationTypeFilter();
  }

  if (JavaKeywordCompletion.DECLARATION_START.getValue().accepts(position) ||
      JavaKeywordCompletion.isInsideParameterList(position) ||
      isInsideAnnotationName(position)) {
    return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE_FILTER);
  }

  if (psiElement().afterLeaf(PsiKeyword.INSTANCEOF).accepts(position)) {
    return new ElementExtractorFilter(ElementClassFilter.CLASS);
  }

  if (JavaKeywordCompletion.VARIABLE_AFTER_FINAL.accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (isCatchFinallyPosition(position) ||
      JavaKeywordCompletion.START_SWITCH.accepts(position) ||
      JavaKeywordCompletion.isInstanceofPlace(position) ||
      JavaKeywordCompletion.isAfterPrimitiveOrArrayType(position)) {
    return null;
  }

  if (JavaKeywordCompletion.START_FOR.accepts(position)) {
    return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.VARIABLE);
  }

  if (JavaSmartCompletionContributor.AFTER_NEW.accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (psiElement().inside(PsiReferenceParameterList.class).accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (psiElement().inside(PsiAnnotationParameterList.class).accepts(position)) {
    return createAnnotationFilter(position);
  }

  PsiVariable var = PsiTreeUtil.getParentOfType(position, PsiVariable.class, false, PsiClass.class);
  if (var != null && PsiTreeUtil.isAncestor(var.getInitializer(), position, false)) {
    return new ExcludeDeclaredFilter(new ClassFilter(PsiVariable.class));
  }

  if (SWITCH_LABEL.accepts(position)) {
    return new ClassFilter(PsiField.class) {
      @Override
      public boolean isAcceptable(Object element, PsiElement context) {
        return element instanceof PsiEnumConstant;
      }
    };
  }

  return TrueFilter.INSTANCE;
}
项目:tools-idea    文件:PsiMethodReferenceExpressionImpl.java   
@Override
public void processVariants(@NotNull final PsiScopeProcessor processor) {
  final FilterScopeProcessor proc = new FilterScopeProcessor(ElementClassFilter.METHOD, processor);
  PsiScopesUtil.resolveAndWalk(proc, this, null, true);
}
项目:tools-idea    文件:PsiDocMethodOrFieldRef.java   
public static PsiVariable[] getAllVariables(PsiElement scope, PsiElement place) {
  final SmartList<PsiVariable> result = new SmartList<PsiVariable>();
  scope.processDeclarations(new FilterScopeProcessor<PsiVariable>(ElementClassFilter.VARIABLE, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiVariable[result.size()]);
}
项目:tools-idea    文件:PsiDocMethodOrFieldRef.java   
public static PsiMethod[] getAllMethods(PsiElement scope, PsiElement place) {
  final SmartList<PsiMethod> result = new SmartList<PsiMethod>();
  scope.processDeclarations(new FilterScopeProcessor<PsiMethod>(ElementClassFilter.METHOD, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiMethod[result.size()]);
}
项目:tools-idea    文件:JavaCompletionContributor.java   
@Nullable
public static ElementFilter getReferenceFilter(PsiElement position) {
  // Completion after extends in interface, type parameter and implements in class
  final PsiClass containingClass = PsiTreeUtil.getParentOfType(position, PsiClass.class, false, PsiCodeBlock.class, PsiMethod.class, PsiExpressionList.class, PsiVariable.class, PsiAnnotation.class);
  if (containingClass != null && psiElement().afterLeaf(PsiKeyword.EXTENDS, PsiKeyword.IMPLEMENTS, ",", "&").accepts(position)) {
    return new AndFilter(ElementClassFilter.CLASS, new NotFilter(new AssignableFromContextFilter()));
  }

  if (ANNOTATION_NAME.accepts(position)) {
    return new AnnotationTypeFilter();
  }

  if (JavaCompletionData.DECLARATION_START.accepts(position) ||
      JavaCompletionData.isInsideParameterList(position) ||
      psiElement().inside(psiElement(PsiJavaCodeReferenceElement.class).withParent(psiAnnotation())).accepts(position)) {
    return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE_FILTER);
  }

  if (psiElement().afterLeaf(PsiKeyword.INSTANCEOF).accepts(position)) {
    return new ElementExtractorFilter(ElementClassFilter.CLASS);
  }

  if (JavaCompletionData.VARIABLE_AFTER_FINAL.accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (JavaCompletionData.AFTER_TRY_BLOCK.isAcceptable(position, position) ||
      JavaCompletionData.START_SWITCH.accepts(position) ||
      JavaCompletionData.isInstanceofPlace(position) ||
      JavaCompletionData.isAfterPrimitiveOrArrayType(position)) {
    return null;
  }

  if (JavaCompletionData.START_FOR.accepts(position)) {
    return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.VARIABLE);
  }

  if (JavaSmartCompletionContributor.AFTER_NEW.accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (psiElement().inside(PsiReferenceParameterList.class).accepts(position)) {
    return ElementClassFilter.CLASS;
  }

  if (psiElement().inside(PsiAnnotationParameterList.class).accepts(position)) {
    return createAnnotationFilter(position);
  }

  if (psiElement().afterLeaf("=").inside(PsiVariable.class).accepts(position)) {
    return new OrFilter(
      new ClassFilter(PsiVariable.class, false),
      new ExcludeDeclaredFilter(new ClassFilter(PsiVariable.class)));
  }

  if (SWITCH_LABEL.accepts(position)) {
    return new ClassFilter(PsiField.class) {
      @Override
      public boolean isAcceptable(Object element, PsiElement context) {
        return element instanceof PsiEnumConstant;
      }
    };
  }

  return TrueFilter.INSTANCE;
}
项目:consulo-java    文件:PsiClassImplUtil.java   
@Nullable
@Override
protected Map<String, PsiMember[]> create(final MemberType key)
{
    final Map<String, List<PsiMember>> map = ContainerUtil.newTroveMap();

    final List<PsiMember> allMembers = ContainerUtil.newArrayList();
    map.put(ALL, allMembers);

    ElementClassFilter filter = key == MemberType.CLASS ? ElementClassFilter.CLASS : key == MemberType.METHOD ? ElementClassFilter.METHOD : ElementClassFilter.FIELD;
    final ElementClassHint classHint = new ElementClassHint()
    {
        @Override
        public boolean shouldProcess(DeclarationKind kind)
        {
            return key == MemberType.CLASS && kind == DeclarationKind.CLASS || key == MemberType.FIELD && (kind == DeclarationKind.FIELD || kind == DeclarationKind.ENUM_CONST) || key ==
                    MemberType.METHOD && kind == DeclarationKind.METHOD;
        }
    };
    FilterScopeProcessor<MethodCandidateInfo> processor = new FilterScopeProcessor<MethodCandidateInfo>(filter)
    {
        @Override
        protected void add(@NotNull PsiElement element, @NotNull PsiSubstitutor substitutor)
        {
            if(key == MemberType.CLASS && element instanceof PsiClass || key == MemberType.METHOD && element instanceof PsiMethod || key == MemberType.FIELD && element instanceof PsiField)
            {
                allMembers.add((PsiMember) element);
                String currentName = ((PsiMember) element).getName();
                List<PsiMember> listByName = map.get(currentName);
                if(listByName == null)
                {
                    listByName = ContainerUtil.newSmartList();
                    map.put(currentName, listByName);
                }
                listByName.add((PsiMember) element);
            }
        }

        @Override
        public <K> K getHint(@NotNull Key<K> hintKey)
        {
            //noinspection unchecked
            return ElementClassHint.KEY == hintKey ? (K) classHint : super.getHint(hintKey);
        }
    };

    processDeclarationsInClassNotCached(myPsiClass, processor, ResolveState.initial(), null, null, myPsiClass, false, PsiUtil.getLanguageLevel(myPsiClass), myResolveScope);
    Map<String, PsiMember[]> result = ContainerUtil.newTroveMap();
    for(String name : map.keySet())
    {
        result.put(name, map.get(name).toArray(PsiMember.EMPTY_ARRAY));
    }
    return result;
}
项目:consulo-java    文件:PsiMethodReferenceExpressionImpl.java   
@Override
public void processVariants(@NotNull final PsiScopeProcessor processor)
{
    final FilterScopeProcessor proc = new FilterScopeProcessor(ElementClassFilter.METHOD, processor);
    PsiScopesUtil.resolveAndWalk(proc, this, null, true);
}
项目:consulo-java    文件:PsiDocMethodOrFieldRef.java   
public static PsiVariable[] getAllVariables(PsiElement scope, PsiElement place) {
  final SmartList<PsiVariable> result = new SmartList<PsiVariable>();
  scope.processDeclarations(new FilterScopeProcessor<PsiVariable>(ElementClassFilter.VARIABLE, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiVariable[result.size()]);
}
项目:consulo-java    文件:PsiDocMethodOrFieldRef.java   
public static PsiMethod[] getAllMethods(PsiElement scope, PsiElement place) {
  final SmartList<PsiMethod> result = new SmartList<PsiMethod>();
  scope.processDeclarations(new FilterScopeProcessor<PsiMethod>(ElementClassFilter.METHOD, result), ResolveState.initial(), null, place);
  return result.toArray(new PsiMethod[result.size()]);
}