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

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

Introduction

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

Prototype

ElementKind getKind();

Source Link

Document

Returns the kind of this element.

Usage

From source file:Main.java

/**
 * get package name from class {@code type}
 * @param type The element of class/*from  ww w. ja  va2 s . com*/
 * @return package name
 */
public static String getPackageName(TypeElement type) {
    if (type == null || type.getSimpleName().toString().length() == 0) {
        return "";
    }
    Element parent = type.getEnclosingElement();
    if (parent.getKind() == ElementKind.PACKAGE) {
        return ((PackageElement) parent).getQualifiedName().toString();
    }
    return getPackageName((TypeElement) parent);
}

From source file:org.jdto.tools.ModelUtils.java

public static Element findFieldOnType(TypeElement element, String name) {

    for (Element enclosedElement : element.getEnclosedElements()) {

        if (enclosedElement.getKind() == ElementKind.FIELD
                && name.equals(enclosedElement.getSimpleName().toString())) {
            return enclosedElement;
        }/*from   w w w  .j a  va 2 s.  c  om*/

    }

    return null;
}

From source file:org.jdto.tools.ModelUtils.java

public static ExecutableElement findSetterOnType(TypeElement element, String name) {
    for (Element enclosedElement : element.getEnclosedElements()) {
        if (enclosedElement.getKind() != ElementKind.METHOD) {
            continue;
        }/*  w w  w  .  java  2s. c o m*/

        String elementName = enclosedElement.getSimpleName().toString();

        if (elementName.startsWith("set")) {

            elementName = StringUtils.uncapitalize(elementName.substring(3));

            if (name.equals(elementName)) {
                return (ExecutableElement) enclosedElement;
            }
        }

    }

    return null;
}

From source file:org.jdto.tools.ModelUtils.java

public static ExecutableElement findGetterOnType(TypeElement element, String name) {

    for (Element enclosedElement : element.getEnclosedElements()) {
        if (enclosedElement.getKind() != ElementKind.METHOD) {
            continue;
        }/*w w w  . j  ava  2 s. co  m*/

        String elementName = enclosedElement.getSimpleName().toString();

        if (elementName.startsWith("get")) {

            elementName = StringUtils.uncapitalize(elementName.substring(3));

            if (name.equals(elementName)) {
                return (ExecutableElement) enclosedElement;
            }
        }

        if (elementName.startsWith("is")) {

            elementName = StringUtils.uncapitalize(elementName.substring(2));

            if (name.equals(elementName)) {
                return (ExecutableElement) enclosedElement;
            }
        }

    }

    return null;
}

From source file:therian.buildweaver.StandardOperatorsProcessor.java

/**
 * Must be a public static concrete class with a default constructor, public static zero-arg method, or public
 * static final field.//from w  w  w .j ava  2 s . c o m
 *
 * @param e
 * @return boolean
 */
private static boolean isValidStandardOperator(final Element e) {
    if (e.getKind() == ElementKind.FIELD) {
        return e.getModifiers().containsAll(EnumSet.of(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL));
    }
    if (e.getKind() == ElementKind.METHOD) {
        return e.getModifiers().containsAll(EnumSet.of(Modifier.PUBLIC, Modifier.STATIC))
                && ((ExecutableElement) e).getParameters().isEmpty();
    }
    if (e.getKind() == ElementKind.CLASS) {
        if (e.getModifiers().contains(Modifier.ABSTRACT) || findDefaultConstructor((TypeElement) e) == null) {
            return false;
        }
        Element current = e;
        while (current.getKind() == ElementKind.CLASS) {
            final TypeElement t = (TypeElement) current;
            if (t.getNestingKind() == NestingKind.TOP_LEVEL) {
                return true;
            }
            if (t.getNestingKind() == NestingKind.MEMBER && t.getModifiers().contains(Modifier.STATIC)) {
                current = t.getEnclosingElement();
                continue;
            }
            break;
        }
    }
    return false;
}

From source file:therian.buildweaver.StandardOperatorsProcessor.java

private static ExecutableElement findDefaultConstructor(TypeElement t) {
    for (Element element : t.getEnclosedElements()) {
        if (element.getKind() == ElementKind.CONSTRUCTOR) {
            ExecutableElement cs = (ExecutableElement) element;
            if (cs.getParameters().size() == 0 && cs.getModifiers().contains(Modifier.PUBLIC)) {
                return cs;
            }/*  www. ja v a2s  .c o m*/
        }
    }
    return null;
}

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

public static boolean isPublicMemberMethod(final Element pElement) {
    if (pElement != null && pElement.getKind() == ElementKind.METHOD) {
        final Set<Modifier> modifiers = pElement.getModifiers();
        return modifiers.contains(Modifier.PUBLIC) && !modifiers.contains(Modifier.STATIC);
    }//ww  w.j av a2 s. co  m

    return false;
}

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;
        }//from   w  ww  .j a  v a  2 s.  c o m
        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.example.JsonExample.java

/**
 * Returns string representation of the given {@code element} when this is enum (i.e. {@link TypeElement#getKind()} == {@link ElementKind#ENUM}).
 * If enum contains at least one constant, then method returns {@link Object#toString()} for first enum constant. If enum doesn't contain any
 * constant, then method return name for enum itself.
 *
 * @param type not {@code null} enum element type
 * @return not {@code null} enum element string representation
 *//* w w w  .  j av  a2  s  .c  o m*/
@NotNull
private static String getEnumExample(@NotNull TypeMirror type) {
    if (!ElementUtils.isEnum(type))
        return null;

    try {
        Element element = ElementUtils.asElement(type);

        for (Element parent : element.getEnclosedElements())
            if (parent.getKind() == ElementKind.ENUM_CONSTANT)
                return parent.getSimpleName().toString();

        return element.getSimpleName().toString();
    } catch (Exception ignored) {
        return null;
    }
}

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('.');
    }/*  w ww .  j av a 2s . com*/
    return buf.append(
            e.getKind() == ElementKind.PACKAGE ? ((PackageElement) e).getQualifiedName() : e.getSimpleName());
}