Package javax.lang.model.element

Examples of javax.lang.model.element.ExecutableElement


  private void processSimpleTypes(String prefix, TypeElement element,
      TypeElementMembers members, Map<String, Object> fieldValues) {
    for (Map.Entry<String, ExecutableElement> entry : members.getPublicGetters()
        .entrySet()) {
      String name = entry.getKey();
      ExecutableElement getter = entry.getValue();
      ExecutableElement setter = members.getPublicSetters().get(name);
      VariableElement field = members.getFields().get(name);
      boolean isNested = getAnnotation(field,
          nestedConfigurationPropertyAnnotation()) != null;
      boolean isCollection = this.typeUtils.isCollectionOrMap(getter
          .getReturnType());
View Full Code Here


  private void processNestedTypes(String prefix, TypeElement element,
      TypeElementMembers members) {
    for (Map.Entry<String, ExecutableElement> entry : members.getPublicGetters()
        .entrySet()) {
      String name = entry.getKey();
      ExecutableElement getter = entry.getValue();
      VariableElement field = members.getFields().get(name);
      Element returnType = this.processingEnv.getTypeUtils().asElement(
          getter.getReturnType());
      AnnotationMirror annotation = getAnnotation(getter,
          configurationPropertiesAnnotation());
      boolean isNested = getAnnotation(field,
          nestedConfigurationPropertyAnnotation()) != null;
      if (returnType != null && returnType instanceof TypeElement
          && annotation == null) {
        TypeElement returns = (TypeElement) returnType;
        if (this.typeUtils.isEnclosedIn(returnType, element) || isNested) {
          String nestedPrefix = ConfigurationMetadata
              .nestedPrefix(prefix, name);
          this.metadata.add(ItemMetadata.newGroup(nestedPrefix,
              this.typeUtils.getType(returns),
              this.typeUtils.getType(element), getter.toString()));
          processTypeElement(nestedPrefix, returns);
        }
      }
    }
  }
View Full Code Here

        this.env = env;
    }

    @Override
    public void check(Element element) throws UnsupportedUsageException {
        final ExecutableElement method = (ExecutableElement) element;
        final Set<Modifier> modifiers = method.getModifiers();
        final List<? extends VariableElement> parameters = method.getParameters();

        final boolean returnsVoid = MethodFilter.VOID.apply(method);

        if (returnsVoid) {
            throw new UnsupportedUsageException(method, "void methods are not supported");
View Full Code Here

    }

    @Override
    public void parse(Element element, Function<TypeElement, Type> storage) {
        final TypeElement typeElement = (TypeElement) element.getEnclosingElement();
        final ExecutableElement method = (ExecutableElement) element;
        final Functor annotation = method.getAnnotation(Functor.class);

        final String defaultName = method.getSimpleName().toString();
        final ClosureName delegate = new ClosureName(defaultName);
        final ClosureName name = new ClosureName(annotation.name().isEmpty() ? defaultName : annotation.name());

        final List<? extends VariableElement> parameters = method.getParameters();
        final boolean isStatic = method.getModifiers().contains(Modifier.STATIC);

        final Argument input;

        if (isStatic) {
            input = findInput(parameters);
        } else {
            input = new Argument(box(typeElement.asType()), "input");
        }

        final ClosureBuilder builder;

        TypeMirror returnType = method.getReturnType();
       
        if (returnType.getKind() == TypeKind.BOOLEAN) {
            builder = new ClosureBuilder(input, delegate);
        } else {
            builder = new ClosureBuilder(input, delegate, new Name(box(returnType).toString()));
View Full Code Here

public class MethodParser implements Parser {

    @Override
    public void check(Element element) throws UnsupportedUsageException {
        final ExecutableElement method = (ExecutableElement) element;
        final Set<Modifier> modifiers = method.getModifiers();
        final List<? extends VariableElement> parameters = method.getParameters();

        final boolean returnsVoid = method.getReturnType().getKind() == TypeKind.VOID;

        if (returnsVoid) {
            throw new UnsupportedUsageException(method, "void methods are not supported");
        }
View Full Code Here

        return true;
    }

    @Override
    public void parse(Element element, Function<TypeElement, Type> storage) {
        final ExecutableElement method = (ExecutableElement) element;
        final TypeElement typeElement = (TypeElement) method.getEnclosingElement();
        final Functor annotation = method.getAnnotation(Functor.class);
        final ClosureName delegate = new ClosureName(method.getSimpleName().toString());;

        final ClosureName name;
       
        if (annotation.name().isEmpty()) {
            name = delegate;
        } else {
            name = new ClosureName(annotation.name());
        }

        final List<? extends VariableElement> parameters = method.getParameters();
        final boolean isStatic = method.getModifiers().contains(Modifier.STATIC);

        final Argument input;

        if (isStatic) {
            input = findInput(parameters);
        } else {
            input = new Argument(typeElement, "input");
        }
       
        final ClosureBuilder builder;

        if (method.getReturnType().getKind() == TypeKind.BOOLEAN) {
            builder = new ClosureBuilder(input, delegate);
        } else {
            final Name returnType = new Name(method.getReturnType().toString());
            builder = new ClosureBuilder(input, delegate, returnType);
        }

        builder.withName(name);
        builder.withStatic(isStatic);
View Full Code Here

public class MethodParser implements Parser {

    @Override
    public void check(Element element) throws UnsupportedUsageException {
        final ExecutableElement method = (ExecutableElement) element;
        final Set<Modifier> modifiers = method.getModifiers();
        final List<? extends VariableElement> parameters = method.getParameters();

        final boolean returnsVoid = method.getReturnType().getKind() == TypeKind.VOID;

        if (returnsVoid) {
            throw new UnsupportedUsageException(method, "void methods are not supported");
        }
View Full Code Here

        return true;
    }

    @Override
    public void parse(Element element, Function<TypeElement, Type> storage) {
        final ExecutableElement method = (ExecutableElement) element;
        final TypeElement typeElement = (TypeElement) method.getEnclosingElement();
        final Functor annotation = method.getAnnotation(Functor.class);
        final ClosureName delegate = new ClosureName(method.getSimpleName().toString());;

        final ClosureName name;
       
        if (annotation.name().isEmpty()) {
            name = delegate;
        } else {
            name = new ClosureName(annotation.name());
        }

        final List<? extends VariableElement> parameters = method.getParameters();
        final boolean isStatic = method.getModifiers().contains(Modifier.STATIC);

        final Argument input;

        if (isStatic) {
            input = findInput(parameters);
        } else {
            input = new Argument(typeElement, "input");
        }
       
        final ClosureBuilder builder;

        if (method.getReturnType().getKind() == TypeKind.BOOLEAN) {
            builder = new ClosureBuilder(input, delegate);
        } else {
            final Name returnType = new Name(method.getReturnType().toString());
            builder = new ClosureBuilder(input, delegate, returnType);
        }

        builder.withName(name);
        builder.withStatic(isStatic);
View Full Code Here

public class MethodParser implements Parser {

    @Override
    public void check(Element element) throws UnsupportedUsageException {
        final ExecutableElement method = (ExecutableElement) element;
        final Set<Modifier> modifiers = method.getModifiers();
        final List<? extends VariableElement> parameters = method.getParameters();

        final boolean returnsVoid = method.getReturnType().getKind() == TypeKind.VOID;

        if (returnsVoid) {
            throw new UnsupportedUsageException(method, "Void methods are not supported");
        }
View Full Code Here

        return true;
    }

    @Override
    public void parse(Element element, Function<TypeElement, Type> storage) {
        final ExecutableElement method = (ExecutableElement) element;
        final TypeElement typeElement = (TypeElement) method.getEnclosingElement();
        final FirstClass annotation = method.getAnnotation(FirstClass.class);
        final ClosureName delegate = new ClosureName(method.getSimpleName().toString());;

        final ClosureName name;
       
        if (annotation.name().isEmpty()) {
            name = delegate;
        } else {
            name = new ClosureName(annotation.name());
        }
       
        final boolean isStatic = method.getModifiers().contains(Modifier.STATIC);

        final Name parameterType;

        if (isStatic) {
            final VariableElement firstParameter = method.getParameters().get(0);
            parameterType = new Name(firstParameter.asType().toString());
        } else {
            parameterType = new Name(typeElement.getQualifiedName().toString());
        }

        final Closure closure;

        if (method.getReturnType().getKind() == TypeKind.BOOLEAN) {
            closure = new Closure(name, delegate, parameterType, isStatic, annotation.nullsafe());
        } else {
            final Name returnType = new Name(method.getReturnType().toString());
            closure = new Closure(name, delegate, parameterType, returnType, isStatic, annotation.nullsafe());
        }

        final Type type = storage.apply(typeElement);
        Preconditions.checkNotNull(type, "No type found for %s", typeElement);
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.