Example usage for javax.lang.model.element TypeElement getEnclosedElements

List of usage examples for javax.lang.model.element TypeElement getEnclosedElements

Introduction

In this page you can find the example usage for javax.lang.model.element TypeElement getEnclosedElements.

Prototype

@Override
List<? extends Element> getEnclosedElements();

Source Link

Document

Returns the fields, methods, constructors, and member types that are directly declared in this class or interface.

Usage

From source file:org.netbeans.jcode.core.util.JavaSourceHelper.java

public static MethodTree getMethodByName(CompilationController controller, String methodName) {
    TypeElement classElement = getTopLevelClassElement(controller);
    if (classElement == null) {
        return null;
    }/*  w w w  .  java2  s.co m*/
    List<ExecutableElement> methods = ElementFilter.methodsIn(classElement.getEnclosedElements());
    List<MethodTree> found = new ArrayList<MethodTree>();
    for (ExecutableElement method : methods) {
        if (method.getSimpleName().toString().equals(methodName)) {
            found.add(controller.getTrees().getTree(method));
        }
    }
    if (found.size() > 1) {
        throw new IllegalArgumentException("Unexpected overloading methods of '" + methodName + "' found.");
    } else if (found.size() == 1) {
        return found.get(0);
    }
    return null;
}

From source file:org.netbeans.jcode.core.util.JavaSourceHelper.java

public static MethodTree getDefaultConstructor(CompilationController controller) {
    TypeElement classElement = getTopLevelClassElement(controller);
    if (classElement == null) {
        return null;
    }/*from w w  w .  java2  s  .c  om*/
    List<ExecutableElement> constructors = ElementFilter.constructorsIn(classElement.getEnclosedElements());

    for (ExecutableElement constructor : constructors) {
        if (constructor.getParameters().size() == 0) {
            return controller.getTrees().getTree(constructor);
        }
    }

    return null;
}

From source file:io.github.jeddict.jcode.util.JavaSourceHelper.java

public static VariableTree getField(CompilationController controller, String fieldName) {
    TypeElement classElement = getTopLevelClassElement(controller);
    if (classElement == null) {
        return null;
    }/*from  w w  w . j  av a 2  s. com*/
    List<VariableElement> fields = ElementFilter.fieldsIn(classElement.getEnclosedElements());

    for (VariableElement field : fields) {
        if (field.getSimpleName().toString().equals(fieldName)) {
            return (VariableTree) controller.getTrees().getTree(field);
        }
    }

    return null;
}

From source file:io.github.jeddict.jcode.util.JavaSourceHelper.java

public static MethodTree getMethodByName(CompilationController controller, String methodName) {
    TypeElement classElement = getTopLevelClassElement(controller);
    if (classElement == null) {
        return null;
    }//from  w ww.  jav a 2  s. com
    List<ExecutableElement> methods = ElementFilter.methodsIn(classElement.getEnclosedElements());
    List<MethodTree> found = new ArrayList<>();
    for (ExecutableElement method : methods) {
        if (method.getSimpleName().toString().equals(methodName)) {
            found.add(controller.getTrees().getTree(method));
        }
    }
    if (found.size() > 1) {
        throw new IllegalArgumentException("Unexpected overloading methods of '" + methodName + "' found.");
    } else if (found.size() == 1) {
        return found.get(0);
    }
    return null;
}

From source file:org.androidannotations.helper.ActivityIntentBuilder.java

private boolean hasActivityOptions(TypeElement type, int optionsParamPosition) {
    if (type == null) {
        return false;
    }/*from   www.jav  a 2  s. c  o  m*/

    for (Element element : type.getEnclosedElements()) {
        if (element.getKind() == ElementKind.METHOD) {
            ExecutableElement executableElement = (ExecutableElement) element;
            if (executableElement.getSimpleName().contentEquals("startActivity")) {
                List<? extends VariableElement> parameters = executableElement.getParameters();
                if (parameters.size() == optionsParamPosition + 1) {
                    VariableElement parameter = parameters.get(optionsParamPosition);
                    if (parameter.asType().toString().equals(CanonicalNameConstants.BUNDLE)) {
                        return true;
                    }
                }
            }
        }
    }
    return false;
}

From source file:blue.lapis.pore.ap.event.EventVerifierProcessor.java

private void verifyEnclosedElements(TypeElement type) {
    boolean searchField = true;
    boolean searchMethod = true;
    boolean searchConstructor = true;

    for (Element element : type.getEnclosedElements()) {
        switch (element.getKind()) {
        case FIELD:
            if (searchField) {
                if (element.getSimpleName().contentEquals("handle")) {
                    searchField = false;
                    verifySpongeEvent(element, element.asType());
                }/*from  w w w.j  a v  a 2 s . c o  m*/
            }
            break;
        case METHOD:
            if (searchMethod) {
                if (element.getSimpleName().contentEquals("getHandle")) {
                    searchMethod = false;
                    verifySpongeEvent(element, ((ExecutableElement) element).getReturnType());
                    break;
                }
            }

            if (element.getSimpleName().toString().startsWith("_INVALID_")) {
                processingEnv.getMessager().printMessage(ERROR,
                        "Annotated event shouldn't override _INVALID_" + " method", element);
            }
            break;
        case CONSTRUCTOR:
            if (searchConstructor) {
                ExecutableElement constructor = (ExecutableElement) element;
                List<? extends VariableElement> parameters = constructor.getParameters();
                if (parameters.size() == 1) {
                    VariableElement handle = parameters.get(0);
                    if (isSpongeEvent(handle.asType())) {
                        searchConstructor = false;
                    }
                }
            }
            break;
        }
    }

    if (searchField) {
        processingEnv.getMessager().printMessage(SEVERITY, "Annotated event is missing handle field", type);
    }
    if (searchMethod) {
        processingEnv.getMessager().printMessage(SEVERITY, "Annotated event is missing getHandle getter", type);
    }
    if (searchConstructor) {
        processingEnv.getMessager().printMessage(SEVERITY, "Annotated event is missing handle constructor",
                type);
    }
}

From source file:io.github.jeddict.jcode.util.JavaSourceHelper.java

public static MethodTree getDefaultConstructor(CompilationController controller) {
    TypeElement classElement = getTopLevelClassElement(controller);
    if (classElement == null) {
        return null;
    }/*from   ww  w  .j a v a  2s  . co  m*/
    List<ExecutableElement> constructors = ElementFilter.constructorsIn(classElement.getEnclosedElements());

    for (ExecutableElement constructor : constructors) {
        if (constructor.getParameters().isEmpty()) {
            return controller.getTrees().getTree(constructor);
        }
    }

    return null;
}

From source file:org.netbeans.jcode.core.util.JavaSourceHelper.java

public static List<MethodTree> getAllMethods(JavaSource source) {
    final List<MethodTree> allMethods = new ArrayList<MethodTree>();

    try {//from  w w w .  j av a2 s .  c  o m
        source.runUserActionTask(new AbstractTask<CompilationController>() {

            public void run(CompilationController controller) throws IOException {
                TypeElement classElement = getTopLevelClassElement(controller);
                if (classElement == null) {
                    return;
                }
                List<ExecutableElement> methods = ElementFilter.methodsIn(classElement.getEnclosedElements());

                for (ExecutableElement method : methods) {
                    allMethods.add(controller.getTrees().getTree(method));
                }
            }
        }, true);
    } catch (IOException ex) {
        Exceptions.printStackTrace(ex);
    }
    return allMethods;
}

From source file:org.netbeans.jcode.core.util.JavaSourceHelper.java

public static Collection<String> getAnnotationValuesForAllMethods(JavaSource source, final String annotation) {
    final Collection<String> results = new HashSet<String>();
    try {/*from w w  w .  j a  v  a2  s  .c o  m*/
        source.runUserActionTask(new AbstractTask<CompilationController>() {

            public void run(CompilationController controller) throws IOException {
                controller.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
                TypeElement classElement = getTopLevelClassElement(controller);
                if (classElement == null) {
                    return;
                }
                List<ExecutableElement> methods = ElementFilter.methodsIn(classElement.getEnclosedElements());

                for (ExecutableElement method : methods) {
                    for (AnnotationMirror mirror : method.getAnnotationMirrors()) {
                        if (((TypeElement) mirror.getAnnotationType().asElement()).getQualifiedName()
                                .contentEquals(annotation)) {
                            for (AnnotationValue value : mirror.getElementValues().values()) {
                                results.add(value.getValue().toString());
                            }
                        }
                    }
                }
            }
        }, true);
    } catch (IOException ex) {
        Exceptions.printStackTrace(ex);
    }

    return results;
}

From source file:io.github.jeddict.jcode.util.JavaSourceHelper.java

public static List<MethodTree> getAllMethods(JavaSource source) {
    final List<MethodTree> allMethods = new ArrayList<>();

    try {/*from   w  ww .  j av a2  s.  c  o  m*/
        source.runUserActionTask(new AbstractTask<CompilationController>() {

            public void run(CompilationController controller) throws IOException {
                TypeElement classElement = getTopLevelClassElement(controller);
                if (classElement == null) {
                    return;
                }
                List<ExecutableElement> methods = ElementFilter.methodsIn(classElement.getEnclosedElements());

                for (ExecutableElement method : methods) {
                    allMethods.add(controller.getTrees().getTree(method));
                }
            }
        }, true);
    } catch (IOException ex) {
        Exceptions.printStackTrace(ex);
    }
    return allMethods;
}