javax.lang.model.element.ExecutableElement#equals ( )源码实例Demo

下面列出了javax.lang.model.element.ExecutableElement#equals ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netbeans   文件: DeleteTransformer.java
private boolean isMatch(Element element, Element elementToFind) {
    if(element == null) {
        return false;
    }
    if(allMethods == null || element.getKind() != ElementKind.METHOD) {
        return element.equals(elementToFind);
    } else {
        for (ElementHandle<ExecutableElement> mh: allMethods) {
            ExecutableElement baseMethod =  mh.resolve(workingCopy);
            if (baseMethod==null) {
                Logger.getLogger("org.netbeans.modules.refactoring.java").log(Level.INFO, "DeleteTransformer cannot resolve {0}", mh);
                continue;
            }
            if (baseMethod.equals(element) || workingCopy.getElements().overrides((ExecutableElement)element, baseMethod, workingCopy.getElementUtilities().enclosingTypeElement(baseMethod))) {
                return true;
            }
        }
    }
    return false;
}
 
源代码2 项目: netbeans   文件: MethodTreeNode.java
boolean overridesMethod( ExecutableElement element,
        CompilationController controller )
{
    ExecutableElement exec = getElementHandle().resolve(controller);
    if ( exec == null ){
        return false;
    }
    ExecutableElement overriddenMethod = exec;
    while ( true ){
        overriddenMethod = 
            controller.getElementUtilities().getOverriddenMethod(overriddenMethod);
        if ( overriddenMethod == null ){
            break;
        }
        if ( overriddenMethod.equals( element )){
            return true;
        }
    }
    return false;
}
 
源代码3 项目: auto   文件: AutoOneOfProcessor.java
private void validateMethods(
    TypeElement type,
    ImmutableSet<ExecutableElement> abstractMethods,
    ImmutableSet<ExecutableElement> propertyMethods,
    ExecutableElement kindGetter) {
  for (ExecutableElement method : abstractMethods) {
    if (propertyMethods.contains(method)) {
      checkReturnType(type, method);
    } else if (!method.equals(kindGetter)
        && objectMethodToOverride(method) == ObjectMethod.NONE) {
      // This could reasonably be an error, were it not for an Eclipse bug in
      // ElementUtils.override that sometimes fails to recognize that one method overrides
      // another, and therefore leaves us with both an abstract method and the subclass method
      // that overrides it. This shows up in AutoValueTest.LukesBase for example.
      // The compilation will fail anyway because the generated concrete classes won't
      // implement this alien method.
      errorReporter()
          .reportWarning(
              method, "Abstract methods in @AutoOneOf classes must have no parameters");
    }
  }
  errorReporter().abortIfAnyError();
}
 
源代码4 项目: netbeans   文件: PropertyRefFinder.java
private boolean isSameOrOverrides(ExecutableElement m1, Collection<ExecutableElement> methods) {
    for (ExecutableElement method : methods) {
        if (m1.equals(method) || cc.getElements().overrides(m1, method, (TypeElement) m1.getEnclosingElement())) {
            return true;
        }
    }

    return false;
}
 
源代码5 项目: netbeans   文件: AsyncConverter.java
private String findFreeName( String name,Element enclosingElement,
        Element havingName)
{
    for(ExecutableElement method:
        ElementFilter.methodsIn(enclosingElement.getEnclosedElements()))
    {
        if (method.equals(havingName)){
            continue;
        }
        if ( method.getSimpleName().contentEquals(name)){
            return findFreeName(name+1,enclosingElement, havingName);
        }
    }
    return name;
}
 
源代码6 项目: netbeans   文件: FieldInjectionPointLogic.java
private boolean collectSpecializes( Element productionElement,
        ExecutableElement element, WebBeansModelImplementation model,
        Set<Element> probableSpecializes, Set<Element> specializeElements )
{
    ElementUtilities elementUtilities =
        model.getHelper().getCompilationController().getElementUtilities();
    if ( !elementUtilities.overridesMethod(element)){
        return false;
    }
    ExecutableElement overriddenMethod = elementUtilities.
        getOverriddenMethod( element);
    if ( overriddenMethod == null ){
        return false;
    }
    if (!AnnotationObjectProvider.hasSpecializes(element,  model.getHelper())){
        return false;
    }
    probableSpecializes.add( element);
    if( overriddenMethod.equals( productionElement ) ||
            specializeElements.contains( productionElement))
    {
        return true;
    }
    else {
        return collectSpecializes(productionElement, overriddenMethod, model,
                probableSpecializes, specializeElements);
    }
}
 
源代码7 项目: j2cl   文件: JavaEnvironment.java
boolean isOrOverridesJsFunctionMethod(ExecutableElement methodBinding) {
  Element declaringType = methodBinding.getEnclosingElement();
  if (JsInteropUtils.isJsFunction(declaringType)
      && methodBinding.equals(
          getFunctionalInterfaceMethodDecl(declaringType.asType()).baseSymbol())) {
    return true;
  }
  for (MethodSymbol overriddenMethodBinding : getOverriddenMethods(methodBinding)) {
    if (isOrOverridesJsFunctionMethod(overriddenMethodBinding)) {
      return true;
    }
  }
  return false;
}
 
源代码8 项目: openjdk-jdk9   文件: Utils.java
/**
 * @param e1 the first method to compare.
 * @param e2 the second method to compare.
 * @return true if member1 overrides/hides or is overriden/hidden by member2.
 */

public boolean executableMembersEqual(ExecutableElement e1, ExecutableElement e2) {
    // TODO: investigate if Elements.hides(..) will work here.
    if (isStatic(e1) && isStatic(e2)) {
        List<? extends VariableElement> parameters1 = e1.getParameters();
        List<? extends VariableElement> parameters2 = e2.getParameters();
        if (e1.getSimpleName().equals(e2.getSimpleName()) &&
                parameters1.size() == parameters2.size()) {
            int j;
            for (j = 0 ; j < parameters1.size(); j++) {
                VariableElement v1 = parameters1.get(j);
                VariableElement v2 = parameters2.get(j);
                String t1 = getTypeName(v1.asType(), true);
                String t2 = getTypeName(v2.asType(), true);
                if (!(t1.equals(t2) ||
                        isTypeVariable(v1.asType()) || isTypeVariable(v2.asType()))) {
                    break;
                }
            }
            if (j == parameters1.size()) {
            return true;
            }
        }
        return false;
    } else {
        return elementUtils.overrides(e1, e2, getEnclosingTypeElement(e1)) ||
                elementUtils.overrides(e2, e1, getEnclosingTypeElement(e2)) ||
                e1.equals(e2);
    }
}
 
源代码9 项目: netbeans   文件: ELTypeUtilities.java
public static TypeMirror getReturnTypeForGenericClass(CompilationContext info, final ExecutableElement method, ELElement elElement, List<Node> rootToNode) {
    Node node = null;
    for (int i = rootToNode.size() - 1; i > 0; i--) {
        node = rootToNode.get(i);
        if (node instanceof AstIdentifier) {
            break;
        }
    }
    if (node != null) {
        Element element = ELTypeUtilities.resolveElement(info, elElement, node);
        if (element == null) {
            return method.getReturnType();
        }

        TypeMirror type = element.asType();
        // interfaces are at the end of the List - first parameter has to be superclass
        TypeMirror directSupertype = info.info().getTypes().directSupertypes(type).get(0);
        if (directSupertype instanceof DeclaredType) {
            DeclaredType declaredType = (DeclaredType) directSupertype;
            // index of involved type argument
            int indexOfTypeArgument = -1;
            // list of all type arguments
            List<? extends TypeMirror> typeArguments = declaredType.getTypeArguments();

            // search for the same method in the generic class
            for (Element enclosedElement : declaredType.asElement().getEnclosedElements()) {
                if (method.equals(enclosedElement)) {
                    TypeMirror returnType = ((ExecutableElement) enclosedElement).getReturnType();
                    // get index of type argument which is returned by involved method
                    indexOfTypeArgument = info.info().getElementUtilities().enclosingTypeElement(method).
                            getTypeParameters().indexOf(((TypeVariable) returnType).asElement());
                    break;
                }
            }
            if (indexOfTypeArgument != -1 && indexOfTypeArgument < typeArguments.size()) {
                return typeArguments.get(indexOfTypeArgument);
            }
        }
    }

    return method.getReturnType();
}