Examples of ExecutableElement


Examples of javax.lang.model.element.ExecutableElement

  protected void addPropertiesForTagOnly(TypeElement type, List<PropertyInfo> properties) {

    final List<? extends Element> members = processingEnv.getElementUtils().getAllMembers(type);
    for (Element member : members) {
      if (member instanceof ExecutableElement) {
        final ExecutableElement executableElement = (ExecutableElement) member;
        addPropertyForTagOnly(executableElement, properties);
      }
    }
  }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

    addProperties(type.getSuperclass(), properties);

    final List<? extends Element> members = processingEnv.getElementUtils().getAllMembers(type);
    for (Element member : members) {
      if (member instanceof ExecutableElement) {
        final ExecutableElement executableElement = (ExecutableElement) member;
        addProperty(executableElement, properties);
      }
    }
  }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

  protected void addAttributes(TypeElement typeElement, Element tagElement, Document document, Type type)
      throws ClassNotFoundException {

    for (javax.lang.model.element.Element element : getAllMembers(typeElement)) {
      if (element instanceof ExecutableElement) {
        ExecutableElement executableElement = (ExecutableElement) element;
        if (executableElement.getAnnotation(TagAttribute.class) == null
            && executableElement.getAnnotation(UIComponentTagAttribute.class) == null) {
          continue;
        }
        addAttribute(executableElement, tagElement, document, type);
      }
    }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

    addAttributes(typeElement.getSuperclass(), uiComponentClass, attributes, properties, namespace);
*/

//    final List<ExecutableElement> members = new ArrayList<ExecutableElement>();
    for (javax.lang.model.element.Element element : processingEnv.getElementUtils().getAllMembers(typeElement)) {
      ExecutableElement executableElement = (ExecutableElement) element;
      if (executableElement.getAnnotation(TagAttribute.class) == null
          && executableElement.getAnnotation(UIComponentTagAttribute.class) == null) {
        continue;
      }
//      if (!members.contains(element)) {
//        members.add((ExecutableElement) element);
//      }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

   
    for (Element e : component.getEnclosedElements()) {
      if (!(e instanceof ExecutableElement))
        continue;
     
      ExecutableElement method = (ExecutableElement) e;
      if (nameMatches(e, setterMethod) && typesEqual(params, method.getParameters()))
        return true;
    }
   
    return false;
  }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

    for (Element element : elements) {
      if (element.getKind() != ElementKind.METHOD) {
        continue;
      }

      ExecutableElement executableElement = (ExecutableElement)element;
      TypeMirror returnType = executableElement.getReturnType();
      if (returnType instanceof NoType && returnType.getKind() == TypeKind.VOID) {
        String error = String.format("void method cannot be annotated with %s", annotationType.getSimpleName());
        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, error, element, getAnnotationMirror(element, annotationType));
      }
    }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

        typeToCheck = variableElement.asType();
        break;

      case METHOD:
        // checking return type
        ExecutableElement executableElement = (ExecutableElement)element;
        typeToCheck = executableElement.getReturnType();
        break;

      default:
        continue;
      }
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

    }
  }

  private void addElementsToNamedMethodMap(Set<? extends Element> elements, Map<String, Map<ExecutableElement, List<Element>>> namedMethodMap) {
    for (Element element : elements) {
      ExecutableElement method;
      switch (element.getKind()) {
      case PARAMETER:
        method = (ExecutableElement)element.getEnclosingElement();
        assert method.getKind() == ElementKind.METHOD;
        break;

      case METHOD:
        method = (ExecutableElement)element;
        break;

      default:
        continue;
      }

      Map<ExecutableElement, List<Element>> annotatedMethodWithName =
        namedMethodMap.get(method.getSimpleName().toString());
      if (annotatedMethodWithName == null) {
        annotatedMethodWithName = new HashMap<ExecutableElement, List<Element>>();
        namedMethodMap.put(method.getSimpleName().toString(), annotatedMethodWithName);
      }

      List<Element> annotatedElementsOfMethod = annotatedMethodWithName.get(method);
      if (annotatedElementsOfMethod == null) {
        annotatedElementsOfMethod = new ArrayList<Element>();
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

       * available to the compiler.
       */
      return null;
    }

    ExecutableElement domainMethod;
    if (currentTypeIsProxy && isSetter(clientMethodElement, state)) {
      // Look for void setFoo(...)
      domainMethod =
          new MethodFinder(name, state.types.getNoType(TypeKind.VOID), lookFor, false, state).scan(
              domainElement, state);
      if (domainMethod == null) {
        // Try a builder style
        domainMethod =
            new MethodFinder(name, domainElement.asType(), lookFor, false, state).scan(
                domainElement, state);
      }
    } else {
      /*
       * The usual case for getters and all service methods. Only box return
       * types when matching context methods since there's a significant
       * semantic difference between a null Integer and 0.
       */
      domainMethod =
          new MethodFinder(name, returnType, lookFor, !currentTypeIsProxy, state).scan(
              domainElement, state);
    }

    if (domainMethod == null) {
      // Did not find a service method
      StringBuilder sb = new StringBuilder();
      sb.append(returnType).append(" ").append(name).append("(");
      for (TypeMirror param : lookFor) {
        sb.append(param);
      }
      sb.append(")");

      state.poison(clientMethodElement, Messages.domainMissingMethod(sb));
      return null;
    }

    // Check if the method is public
    if (!domainMethod.getModifiers().contains(Modifier.PUBLIC)) {
      state.poison(clientMethodElement, Messages.domainMethodNotPublic(
          domainMethod.getSimpleName()));
    }

    /*
     * Check the domain method for any requirements for it to be static.
     * InstanceRequests assume instance methods on the domain type.
     */
    boolean isInstanceRequest =
        state.types.isSubtype(clientMethod.getReturnType(), state.instanceRequestType);

    if ((isInstanceRequest || requireInstanceDomainMethods)
        && domainMethod.getModifiers().contains(Modifier.STATIC)) {
      state.poison(clientMethodElement, Messages.domainMethodWrongModifier(false, domainMethod
          .getSimpleName()));
    }
    if (!isInstanceRequest && requireStaticDomainMethods
        && !domainMethod.getModifiers().contains(Modifier.STATIC)) {
      state.poison(clientMethodElement, Messages.domainMethodWrongModifier(true, domainMethod
          .getSimpleName()));
    }

    // Record the mapping
    state.addMapping(clientMethodElement, domainMethod);
View Full Code Here

Examples of javax.lang.model.element.ExecutableElement

   * non-static. Check that {@code findFoo()} exists, is static, returns an
   * appropriate type, and its parameter is assignable from the return value
   * from {@code getId()}.
   */
  private void checkDomainEntityMethods(State state) {
    ExecutableElement getId =
        new MethodFinder("getId", null, Collections.<TypeMirror> emptyList(), false, state).scan(
            domainElement, state);
    if (getId == null) {
      state.poison(checkedElement, Messages.domainNoGetId(domainElement.asType()));
    } else {
      if (getId.getModifiers().contains(Modifier.STATIC)) {
        state.poison(checkedElement, Messages.domainGetIdStatic());
      }

      // Can only check findFoo() if we have a getId
      ExecutableElement find =
          new MethodFinder("find" + domainElement.getSimpleName(), domainElement.asType(),
              Collections.singletonList(getId.getReturnType()), false, state).scan(domainElement,
              state);
      if (find == null) {
        state.warn(checkedElement, Messages.domainMissingFind(domainElement.asType(), domainElement
            .getSimpleName(), getId.getReturnType(), checkedElement.getSimpleName()));
      } else if (!find.getModifiers().contains(Modifier.STATIC)) {
        state.poison(checkedElement, Messages.domainFindNotStatic(domainElement.getSimpleName()));
      }
    }

    ExecutableElement getVersion =
        new MethodFinder("getVersion", null, Collections.<TypeMirror> emptyList(), false, state)
            .scan(domainElement, state);
    if (getVersion == null) {
      state.poison(checkedElement, Messages.domainNoGetVersion(domainElement.asType()));
    } else if (getVersion.getModifiers().contains(Modifier.STATIC)) {
      state.poison(checkedElement, Messages.domainGetVersionStatic());
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.