Package javax.lang.model.element

Examples of javax.lang.model.element.ExecutableElement


        warn("Class "
            + elementAsString(parent)
            + "\n\t contains more than one @Parameters method\n\tOnly one @Parameters method is allowed for a test class");
      }
      exists.add(parent);
      ExecutableElement ee = (ExecutableElement) element;
      if (!ee.getModifiers().contains(Modifier.STATIC)) {
        warn("Method "
            + elementAsString(element)
            + "\n\tis prefixed with @Parameters and is not static\n\tThe parameters method must be static");
      }
      if (!ee.getModifiers().contains(Modifier.PUBLIC)) {
        warn("Method "
            + elementAsString(element)
            + "\n\tis prefixed with @Parameters and is not public\n\tThe parameters method must be public");
      }
      TypeMirror rt = ee.getReturnType();
      if (rt.getKind() != TypeKind.DECLARED) {
        warn("Method " + elementAsString(element)
            + "\n\tis prefixed with @Parameters and return " + rt
            + "\n\tThe parameters method must return " + stream);
      } else {
        DeclaredType dt = (DeclaredType) rt;
        if (!processingEnv.getTypeUtils().isSubtype(
            dt.asElement().asType(), stream.asType())) {
          warn("Method " + elementAsString(element)
              + "\n\tis prefixed with @Parameters and return "
              + dt.asElement().asType()
              + "\n\tThe parameters method must return " + stream);
        }
      }
      if (ee.getParameters().size() != 0) {
        warn("Method "
            + elementAsString(element)
            + "\n\tis prefixed with @Parameters and is not 0-args\n\tThe parameters method must be 0-args");
      }
    }
View Full Code Here


                  decl.getSimpleName().toString()),
              decl);
        }

        // Make sure correct args are specified
        ExecutableElement exe = decl.accept(new ExecutableElementVisitor(), null);
        List<? extends VariableElement> params = exe.getParameters();
        String pdec = params.iterator().next().asType().toString();
        if ((params.size() != 1)
            || !pdec.equals("com.sun.jsftemplating.layout.descriptors.handler.HandlerContext")) {

          processingEnv.getMessager().printMessage(Kind.ERROR,
View Full Code Here

    return js.function(null, Collections.emptyList(), js.returnStatement(newExpr));
  }

  @Override
  public JS visit(WriterVisitor<JS> visitor, MemberReferenceTree tree, GenerationContext<JS> context) {
    ExecutableElement methodElement = (ExecutableElement) context.getTrees().getElement(context.getCurrentPath());
    Element qualifierElement = context.getTrees().getElement(new TreePath(context.getCurrentPath(), tree.getQualifierExpression()));

    // System.out.println(tree + ":left:" + tree.getQualifierExpression().getClass() + ", kind:" +
    // qualifierElemenet.getKind());
    if (tree.getMode() == ReferenceMode.INVOKE) {
View Full Code Here

   *
   * @param node
   * @return the element for the given method
   */
  public static final ExecutableElement elementFromDeclaration(MethodTree node) {
    ExecutableElement elt = (ExecutableElement) InternalUtils.symbol(node);
    return elt;
  }
View Full Code Here

  public static boolean isMethodInvocation(Tree tree, ExecutableElement method, ProcessingEnvironment env) {
    if (!(tree instanceof MethodInvocationTree)) {
      return false;
    }
    MethodInvocationTree methInvok = (MethodInvocationTree) tree;
    ExecutableElement invoked = TreeUtils.elementFromUse(methInvok);
    return isMethod(invoked, method, env);
  }
View Full Code Here

   * @param node
   *            the method invocation to check
   * @return true if this is a super call to the {@link Enum} constructor
   */
  public static boolean isEnumSuper(MethodInvocationTree node) {
    ExecutableElement ex = TreeUtils.elementFromUse(node);
    Name name = ElementUtils.getQualifiedClassName(ex);
    boolean correctClass = "java.lang.Enum".contentEquals(name);
    boolean correctMethod = "<init>".contentEquals(ex.getSimpleName());
    return correctClass && correctMethod;
  }
View Full Code Here

    }
  }

  @Override
  public Void visit(CheckVisitor visitor, MethodTree tree, GenerationContext<Void> context) {
    ExecutableElement methodElement = TreeUtils.elementFromDeclaration(tree);
    if (JavaNodes.isNative(methodElement)) {
      // no need to check the native ones - only the one with the body
      return null;
    }
    TreeWrapper<Tree, Void> tw = context.getCurrentWrapper();
    if (MemberWriters.shouldSkip(tw)) {
      return null;
    }

    boolean hasVarArgs = tree.getParameters().size() == 1 && InternalUtils.isVarArg(tree.getParameters().get(0));

    TypeElement typeElement = (TypeElement) methodElement.getEnclosingElement();
    // for constructors take only the class's other constructors. For regular methods, checks agains all the methods
    // in the class' hierarchy
    List<? extends Element> allMembers =
        methodElement.getKind() == ElementKind.CONSTRUCTOR ? typeElement.getEnclosedElements() : context.getElements().getAllMembers(
            typeElement);

    for (Element memberElement : allMembers) {
      if (memberElement.getAnnotation(ServerSide.class) == null) {
        checkMember(memberElement, methodElement, tree, context, hasVarArgs);
View Full Code Here

    JS target = null;
    int arg = 0;

    // TARGET
    ExecutableElement methodElement = TreeUtils.elementFromUse(tree);
    if (JavaNodes.isStatic(methodElement)) {
      // $staticMethod(x) or $staticMethod(x,y)
      target = context.js().paren(visitor.scan(tree.getArguments().get(arg++), context));
    } else {
      // $method() or $method(x)
View Full Code Here

  }

  private void checkMethod(TypeElement classElement, Tree member, GenerationContext<Void> context, Multimap<String, Element> existingNames) {
    if (member instanceof MethodTree) {
      MethodTree method = (MethodTree) member;
      ExecutableElement methodElement = TreeUtils.elementFromDeclaration(method);
      if (JavaNodes.isNative(methodElement)) {
        // do nothing with the native methods as no code will be generated.
        // the check will be done only for the method that has a body and that is supposed to me the most
        // generic version of the overloaded method
        return;
      }
      TreeWrapper<Tree, Void> tw = context.getCurrentWrapper().child(member);
      if (MemberWriters.shouldSkip(tw)) {
        return;
      }
      if (methodElement.getKind() != ElementKind.METHOD) {
        // skip the constructors
        return;
      }
      checkMethodName(classElement, method, methodElement, context, existingNames);
    }
View Full Code Here

  @Override
  public List<? extends Element> getEnclosedElements() {
    ReferenceBinding binding = (ReferenceBinding)_binding;
    List<Element> enclosed = new ArrayList<Element>(binding.fieldCount() + binding.methods().length);
    for (MethodBinding method : binding.methods()) {
      ExecutableElement executable = new ExecutableElementImpl(_env, method);
      enclosed.add(executable);
    }
    for (FieldBinding field : binding.fields()) {
      // TODO no field should be excluded according to the JLS
      if (!field.isSynthetic()) {
View Full Code Here

TOP

Related Classes of javax.lang.model.element.ExecutableElement

Copyright © 2018 www.massapicom. 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.