Java 类com.intellij.psi.impl.PsiSuperMethodImplUtil 实例源码

项目:consulo-java    文件:DefaultSymbolNavigationContributor.java   
private static boolean hasSuperMethod(PsiMethod method)
{
    PsiClass containingClass = method.getContainingClass();
    if(containingClass == null)
    {
        return false;
    }

    for(PsiMethod candidate : containingClass.findMethodsByName(method.getName(), true))
    {
        if(candidate.getContainingClass() != containingClass && PsiSuperMethodImplUtil.isSuperMethodSmart(method, candidate))
        {
            return true;
        }
    }
    return false;
}
项目:intellij-ce-playground    文件:HighlightMethodUtil.java   
/**
 * @return error if static method overrides instance method or
 *         instance method overrides static. see JLS 8.4.6.1, 8.4.6.2
 */
static HighlightInfo checkStaticMethodOverride(@NotNull PsiMethod method,@NotNull PsiFile containingFile) {
  // constructors are not members and therefor don't override class methods
  if (method.isConstructor()) {
    return null;
  }

  PsiClass aClass = method.getContainingClass();
  if (aClass == null) return null;
  final HierarchicalMethodSignature methodSignature = PsiSuperMethodImplUtil.getHierarchicalMethodSignature(method);
  final List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
  if (superSignatures.isEmpty()) {
    return null;
  }

  boolean isStatic = method.hasModifierProperty(PsiModifier.STATIC);
  for (HierarchicalMethodSignature signature : superSignatures) {
    final PsiMethod superMethod = signature.getMethod();
    final PsiClass superClass = superMethod.getContainingClass();
    if (superClass == null) continue;
    final HighlightInfo highlightInfo = checkStaticMethodOverride(aClass, method, isStatic, superClass, superMethod,containingFile);
    if (highlightInfo != null) {
      return highlightInfo;
    }
  }
  return null;
}
项目:intellij-ce-playground    文件:DelegatedMethodsContributor.java   
private static boolean overridesObjectOrGroovyObject(PsiMethod method) {
  final String name = method.getName();
  if (!OBJECT_METHODS.contains(name) && !GROOVY_OBJECT_METHODS.contains(name)) return false;

  final PsiMethod superMethod = PsiSuperMethodImplUtil.findDeepestSuperMethod(method);
  if (superMethod == null) return false;

  final PsiClass superClass = superMethod.getContainingClass();
  if (superClass == null) return false;

  final String qname = superClass.getQualifiedName();
  return CommonClassNames.JAVA_LANG_OBJECT.equals(qname) || GroovyCommonClassNames.GROOVY_OBJECT.equals(qname);
}
项目:intellij-ce-playground    文件:GrMethodBaseImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);

  /*PsiClass containingClass = getContainingClass();

  Set<PsiMethod> methods = new HashSet<PsiMethod>();
  findSuperMethodRecursively(methods, containingClass, false, new HashSet<PsiClass>(), createMethodSignature(this),
                              new HashSet<MethodSignature>());

  return methods.toArray(new PsiMethod[methods.size()]);*/
}
项目:tools-idea    文件:DefaultSymbolNavigationContributor.java   
private static boolean hasSuperMethod(PsiMethod method) {
  PsiClass containingClass = method.getContainingClass();
  if (containingClass == null) return false;

  for (PsiMethod candidate : containingClass.findMethodsByName(method.getName(), true)) {
    if (candidate.getContainingClass() != containingClass && PsiSuperMethodImplUtil.isSuperMethodSmart(method, candidate)) {
      return true;
    }
  }
  return false;
}
项目:tools-idea    文件:DelegatedMethodsContributor.java   
private static boolean overridesObjectOrGroovyObject(PsiMethod method) {
  final String name = method.getName();
  if (!OBJECT_METHODS.contains(name) && !GROOVY_OBJECT_METHODS.contains(name)) return false;

  final PsiMethod superMethod = PsiSuperMethodImplUtil.findDeepestSuperMethod(method);
  if (superMethod == null) return false;

  final PsiClass superClass = superMethod.getContainingClass();
  if (superClass == null) return false;

  final String qname = superClass.getQualifiedName();
  return CommonClassNames.JAVA_LANG_OBJECT.equals(qname) || GroovyCommonClassNames.GROOVY_OBJECT.equals(qname);
}
项目:tools-idea    文件:GrMethodBaseImpl.java   
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);

  /*PsiClass containingClass = getContainingClass();

  Set<PsiMethod> methods = new HashSet<PsiMethod>();
  findSuperMethodRecursively(methods, containingClass, false, new HashSet<PsiClass>(), createMethodSignature(this),
                              new HashSet<MethodSignature>());

  return methods.toArray(new PsiMethod[methods.size()]);*/
}
项目:consulo-java    文件:HighlightMethodUtil.java   
/**
 * @return error if static method overrides instance method or
 * instance method overrides static. see JLS 8.4.6.1, 8.4.6.2
 */
static HighlightInfo checkStaticMethodOverride(@NotNull PsiMethod method, @NotNull PsiFile containingFile)
{
    // constructors are not members and therefor don't override class methods
    if(method.isConstructor())
    {
        return null;
    }

    PsiClass aClass = method.getContainingClass();
    if(aClass == null)
    {
        return null;
    }
    final HierarchicalMethodSignature methodSignature = PsiSuperMethodImplUtil.getHierarchicalMethodSignature(method);
    final List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
    if(superSignatures.isEmpty())
    {
        return null;
    }

    boolean isStatic = method.hasModifierProperty(PsiModifier.STATIC);
    for(HierarchicalMethodSignature signature : superSignatures)
    {
        final PsiMethod superMethod = signature.getMethod();
        final PsiClass superClass = superMethod.getContainingClass();
        if(superClass == null)
        {
            continue;
        }
        final HighlightInfo highlightInfo = checkStaticMethodOverride(aClass, method, isStatic, superClass, superMethod, containingFile);
        if(highlightInfo != null)
        {
            return highlightInfo;
        }
    }
    return null;
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public HierarchicalMethodSignature getHierarchicalMethodSignature() {
  return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods() {
  return PsiSuperMethodImplUtil.findSuperMethods(this);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(PsiClass parentClass) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public List<MethodSignatureBackedByPsiMethod> findSuperMethodSignaturesIncludingStatic(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
public PsiMethod findDeepestSuperMethod() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethod(this);
}
项目:intellij-ce-playground    文件:LightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findDeepestSuperMethods() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethods(this);
}
项目:intellij-ce-playground    文件:LightPsiClassBase.java   
@NotNull
@Override
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
  return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}
项目:intellij-ce-playground    文件:ClsTypeParameterImpl.java   
@Override
@NotNull
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
  return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods() {
  return PsiSuperMethodImplUtil.findSuperMethods(this);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(PsiClass parentClass) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public List<MethodSignatureBackedByPsiMethod> findSuperMethodSignaturesIncludingStatic(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
public PsiMethod findDeepestSuperMethod() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethod(this);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findDeepestSuperMethods() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethods(this);
}
项目:intellij-ce-playground    文件:ClsMethodImpl.java   
@Override
@NotNull
public HierarchicalMethodSignature getHierarchicalMethodSignature() {
  return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this);
}
项目:intellij-ce-playground    文件:ClsClassImpl.java   
@Override
@NotNull
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
  return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}
项目:intellij-ce-playground    文件:PsiTypeParameterImpl.java   
@Override
@NotNull
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
  return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods() {
  return PsiSuperMethodImplUtil.findSuperMethods(this);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(PsiClass parentClass) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public List<MethodSignatureBackedByPsiMethod> findSuperMethodSignaturesIncludingStatic(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
public PsiMethod findDeepestSuperMethod() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethod(this);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public PsiMethod[] findDeepestSuperMethods() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethods(this);
}
项目:intellij-ce-playground    文件:PsiMethodImpl.java   
@Override
@NotNull
public HierarchicalMethodSignature getHierarchicalMethodSignature() {
  return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public HierarchicalMethodSignature getHierarchicalMethodSignature() {
  return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods() {
  return PsiSuperMethodImplUtil.findSuperMethods(this);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findSuperMethods(PsiClass parentClass) {
  return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public List<MethodSignatureBackedByPsiMethod> findSuperMethodSignaturesIncludingStatic(boolean checkAccess) {
  return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
public PsiMethod findDeepestSuperMethod() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethod(this);
}
项目:intellij-ce-playground    文件:GrLightMethodBuilder.java   
@Override
@NotNull
public PsiMethod[] findDeepestSuperMethods() {
  return PsiSuperMethodImplUtil.findDeepestSuperMethods(this);
}