Example usage for javax.lang.model.element Element getEnclosingElement

List of usage examples for javax.lang.model.element Element getEnclosingElement

Introduction

In this page you can find the example usage for javax.lang.model.element Element getEnclosingElement.

Prototype

Element getEnclosingElement();

Source Link

Document

Returns the innermost element within which this element is, loosely speaking, enclosed.

Usage

From source file:therian.buildweaver.StandardOperatorsProcessor.java

private static StringBuilder appendTo(StringBuilder buf, Element e) {
    final Element parent = e.getEnclosingElement();
    if (parent != null) {
        appendTo(buf, parent).append('.');
    }//from  www .j  a v  a2  s .c  o  m
    return buf.append(
            e.getKind() == ElementKind.PACKAGE ? ((PackageElement) e).getQualifiedName() : e.getSimpleName());
}

From source file:de.hasait.genesis.base.util.GenesisUtils.java

public static PackageElement findPackageElement(final Element pElement) {
    Element currentElement = pElement;
    while (currentElement != null && !(currentElement instanceof PackageElement)) {
        currentElement = currentElement.getEnclosingElement();
    }//  w w w . j av  a 2  s.  c o  m

    return (PackageElement) currentElement;
}

From source file:adalid.util.meta.MetaJavaCompiler.java

private static void scanAnalyzedElements(Iterable<? extends Element> elements, String tabs) {
    for (Element element : elements) {
        logger.info(tabs + "element" + CL + element.getKind() + SP + element.getSimpleName() + LP
                + element.getClass() + RP + element);
        logger.info(tabs + "enclosing element" + CL + element.getEnclosingElement());
        if (element instanceof ClassSymbol) {
            ClassSymbol classSymbol = (ClassSymbol) element;
        }/* w  w  w  .j a v a 2 s  .c om*/
        if (element instanceof MethodSymbol) {
            MethodSymbol methodSymbol = (MethodSymbol) element;
            logger.info(tabs + "method symbol" + CL + methodSymbol.getReturnType() + SP
                    + methodSymbol.getSimpleName() + LP + StringUtils.join(methodSymbol.getParameters(), CM)
                    + RP + StringUtils.join(methodSymbol.getThrownTypes(), CM));
        }
        if (element instanceof VarSymbol) {
            VarSymbol varSymbol = (VarSymbol) element;
        }
        List<? extends Element> enclosedElements = element.getEnclosedElements();
        if (enclosedElements != null && !enclosedElements.isEmpty()) {
            logger.info(tabs + "enclosed elements" + CL + StringUtils.join(enclosedElements, CM));
            scanAnalyzedElements(enclosedElements, tabs + "\t");
        }
        logger.info("");
    }
}

From source file:cop.raml.utils.ImportScanner.java

/**
 * Find out main class element in the java file. Given {@code element} can point to method or inner class. In each case, this method retrieves
 * only one class element (which has same name with java file).
 *
 * @param element some element/*from   w w w  .j a v a2s  .c o m*/
 * @return class element
 */
private static Element getClassRootElement(Element element) {
    if (element == null)
        return null;

    Element prv = element;

    while (element != null && element.getKind() != ElementKind.PACKAGE) {
        prv = element;
        element = element.getEnclosingElement();

        if (element == null)
            prv = null;
    }

    return prv;
}

From source file:com.dspot.declex.override.holder.FragmentActionHolder.java

public static void addFragmentArg(ActionInfo actionInfo, Element element, AndroidAnnotationsEnvironment env) {

    APTCodeModelHelper codeModelHelper = new DeclexAPTCodeModelHelper(env);

    final String clsName = element.getEnclosingElement().asType().toString();
    final int index = clsName.lastIndexOf('.');
    final String pkg = clsName.substring(0, index);
    final String fragmentName = clsName.substring(index + 1);
    final String actionName = pkg + "." + fragmentName + "ActionHolder";

    final String elementName = element.getSimpleName().toString();
    if (element.getKind().isField()) {
        final AbstractJClass clazz = codeModelHelper.elementTypeToJClass(element);
        actionInfo.addMethod(elementName, actionName, Arrays.asList(new ActionMethodParam(elementName, clazz)));

    } else if (element.getKind() == ElementKind.METHOD) {

        List<? extends VariableElement> elementParams = ((ExecutableElement) element).getParameters();
        List<ActionMethodParam> params = new ArrayList<>(elementParams.size());

        for (VariableElement param : elementParams) {
            final String paramName = param.getSimpleName().toString();
            final AbstractJClass paramClass = codeModelHelper.elementTypeToJClass(param);
            params.add(new ActionMethodParam(paramName, paramClass));
        }//from  w  w  w.ja  v  a2 s. c om

        actionInfo.addMethod(elementName, actionName, params);
    }
}

From source file:com.airbnb.deeplinkdispatch.DeepLinkProcessor.java

private static PackageElement getPackage(Element type) {
    while (type.getKind() != ElementKind.PACKAGE) {
        type = type.getEnclosingElement();
    }//from w  w  w  .j a  va2 s.  c  o  m
    return (PackageElement) type;
}

From source file:fr.xebia.extras.selma.codegen.MapperClassGenerator.java

public PackageElement getPackage(Element type) {
    while (type.getKind() != ElementKind.PACKAGE) {
        type = type.getEnclosingElement();
    }/*from   w w w  .ja  v  a 2 s.  c  o m*/
    return (PackageElement) type;
}

From source file:io.fabric8.kubernetes.generator.processor.AbstractKubernetesAnnotationProcessor.java

PackageElement getPackageElement(Element element) {
    if (element instanceof PackageElement) {
        return (PackageElement) element;
    } else {/*from w  ww  . ja  va 2 s .  c  om*/
        return getPackageElement(element.getEnclosingElement());
    }
}

From source file:com.github.pellaton.springconfigvalidation.SpringConfigurationValidationProcessor.java

private boolean isNestedClass(Element element) {
    return element.getEnclosingElement().getKind().equals(ElementKind.CLASS);
}

From source file:org.commonjava.vertx.vabr.anno.proc.AbstractTemplateInfo.java

protected AbstractTemplateInfo(final Element elem, final Handles handles, final int priority,
        final Method method, final String path, final String defPath, final String[] routeVersions,
        final boolean fork) {
    this.priority = priority;
    this.httpMethod = method;
    this.fork = fork;
    this.httpPath = AnnotationUtils.pathOf(handles, path, defPath);
    this.routePathFragment = isEmpty(path) ? defPath : path;
    this.handlerPathFragment = isEmpty(handles.prefix()) ? handles.value() : handles.prefix();

    // it only applies to methods...
    final ExecutableElement eelem = (ExecutableElement) elem;

    methodname = eelem.getSimpleName().toString();

    final TypeElement cls = (TypeElement) eelem.getEnclosingElement();

    Element parent = cls.getEnclosingElement();
    while (parent.getKind() != ElementKind.PACKAGE) {
        parent = parent.getEnclosingElement();
    }// w  w w . j  a v a  2s .  co m

    final PackageElement pkg = (PackageElement) parent;

    qualifiedClassname = cls.getQualifiedName().toString();

    classname = cls.getSimpleName().toString();

    packagename = pkg.getQualifiedName().toString();

    this.handlerKey = AnnotationUtils.getHandlerKey(handles, qualifiedClassname);

    this.versions = new ArrayList<>();
    if (routeVersions != null && routeVersions.length > 0) {
        for (final String rv : routeVersions) {
            this.versions.add(rv);
        }
    } else {
        final String[] handlerVersions = handles.versions();
        if (handlerVersions != null) {
            for (final String rv : handlerVersions) {
                this.versions.add(rv);
            }
        }
    }
}