Example usage for javax.lang.model.element VariableElement asType

List of usage examples for javax.lang.model.element VariableElement asType

Introduction

In this page you can find the example usage for javax.lang.model.element VariableElement asType.

Prototype

@Override
TypeMirror asType();

Source Link

Document

Returns the type of this variable.

Usage

From source file:Main.java

public static String getParams(ExecutableElement d) {
    Collection<? extends VariableElement> params = d.getParameters();
    if (params.size() == 0)
        return "";
    StringBuilder sbuf = new StringBuilder(params.size() * 20);
    for (VariableElement param : params) {
        sbuf.append(param.asType());
        sbuf.append(' ');
        sbuf.append(param.getSimpleName());
        sbuf.append(',');
    }//  w  ww. j  a va  2s  .c  om
    sbuf.setLength(sbuf.length() - 1);
    return sbuf.toString();
}

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

public static String toEnumStr(String doc, VariableElement var) {
    doc = StringUtils.isBlank(doc) || EMPTY_ENUM.matcher(doc).matches() ? null : doc;

    if (doc != null || var == null)
        return doc;

    try {/*from  w ww .j  a  va 2  s  .  c o  m*/
        TypeElement typeElement = ElementUtils.asElement(var.asType());

        if (typeElement.getKind() != ElementKind.ENUM)
            return null;

        return toEnumStr(typeElement.getEnclosedElements().stream()
                .filter(element -> element.getKind() == ElementKind.ENUM_CONSTANT)
                .map(element -> element.getSimpleName().toString()).toArray(String[]::new));
    } catch (Exception ignored) {
        return null;
    }
}

From source file:cop.raml.processor.RestProcessor.java

private static boolean isMultipart(@NotNull VariableElement var) {
    return var.asType().toString().toLowerCase().contains("multipart");
}

From source file:auto.parse.processor.AutoParseProcessor.java

private static String formalTypeArgsString(ExecutableElement method, TypeSimplifier typeSimplifier) {
    List<? extends VariableElement> typeParameters = method.getParameters();
    if (typeParameters.isEmpty()) {
        return "";
    } else {//from w ww . j  a  va2s  .co m
        String s = "";
        String sep = "";
        for (VariableElement typeParameter : typeParameters) {
            s += sep + typeSimplifier.simplify(typeParameter.asType()) + " " + typeParameter.getSimpleName();
            sep = ", ";
        }
        return s;
    }
}

From source file:com.github.alexfalappa.nbspringboot.navigator.MappedElement.java

private final String computeHandlerSignature(Element element) {
    StringBuilder sb = new StringBuilder(element.getSimpleName());
    if (element instanceof ExecutableElement) {
        // store arguments with same unqualified type name
        ExecutableElement eel = (ExecutableElement) element;
        SetValuedMap<String, String> mm = new HashSetValuedHashMap<>();
        for (VariableElement var : eel.getParameters()) {
            String fullType = var.asType().toString();
            mm.put(Utils.shortenJavaType(fullType), fullType);
        }//from  w w  w .j  a  v a  2 s .  c o m
        // build up argument list
        sb.append('(');
        for (int i = 0; i < eel.getParameters().size(); i++) {
            VariableElement var = eel.getParameters().get(i);
            String fullType = var.asType().toString();
            final String shortType = Utils.shortenJavaType(fullType);
            if (mm.get(shortType).size() > 1) {
                sb.append(fullType);
            } else {
                sb.append(shortType);
            }
            if (i < eel.getParameters().size() - 1) {
                sb.append(", ");
            }
        }
        sb.append(") : ");
        sb.append(Utils.shortenJavaType(eel.getReturnType().toString()));
    }
    return sb.toString();
}

From source file:org.mule.devkit.validation.InjectValidator.java

@Override
public void validate(DevKitTypeElement typeElement, GeneratorContext context) throws ValidationException {
    for (VariableElement variable : typeElement.getFieldsAnnotatedWith(Inject.class)) {
        if (!variable.asType().toString().equals(MuleContext.class.getName())
                && !variable.asType().toString().equals(ObjectStoreManager.class.getName())
                && !variable.asType().toString().equals(TransactionManager.class.getName())
                && !variable.asType().toString().equals(QueueManager.class.getName())
                && !variable.asType().toString().equals(MuleConfiguration.class.getName())
                && !variable.asType().toString().equals(LifecycleManager.class.getName())
                && !variable.asType().toString().equals(ClassLoader.class.getName())
                && !variable.asType().toString().equals(ExpressionManager.class.getName())
                && !variable.asType().toString().equals(EndpointFactory.class.getName())
                && !variable.asType().toString().equals(MuleClient.class.getName())
                && !variable.asType().toString().equals(SystemExceptionHandler.class.getName())
                && !variable.asType().toString().equals(SecurityManager.class.getName())
                && !variable.asType().toString().equals(WorkManager.class.getName())
                && !variable.asType().toString().equals(ObjectStore.class.getName())
                && !variable.asType().toString().equals(Registry.class.getName())) {
            throw new ValidationException(variable, "I don't know how to inject the type "
                    + variable.asType().toString() + " in field " + variable.getSimpleName().toString() + ". "
                    + "The only types I know how to inject are: MuleContext, ObjectStoreManager, ObjectStore, TransactionManager, QueueManager, MuleConfiguration, LifecycleManager, ClassLoader,"
                    + "ExpressionManager, EndpointFactory, MuleClient, SystemExceptionHandler, SecurityManager, WorkManager, Registry");
        } else {/*from w  w w . j a  va2s  .  c  om*/
            boolean found = false;
            for (ExecutableElement method : typeElement.getMethods()) {
                if (method.getSimpleName().toString()
                        .equals("set" + StringUtils.capitalize(variable.getSimpleName().toString()))) {
                    found = true;
                    break;
                }
            }
            if (!found) {
                throw new ValidationException(variable, "Cannot find a setter method for "
                        + variable.getSimpleName().toString() + " but its being marked as injectable.");
            }

            if (variable.asType().toString().equals(ObjectStore.class.getName())) {
                boolean getterFound = false;
                for (ExecutableElement method : typeElement.getMethods()) {
                    if (method.getSimpleName().toString()
                            .equals("get" + StringUtils.capitalize(variable.getSimpleName().toString()))) {
                        getterFound = true;
                        break;
                    }
                }
                if (!getterFound) {
                    throw new ValidationException(variable,
                            "Cannot find a getter method for " + variable.getSimpleName().toString()
                                    + " but its being marked as an injectable Object Store.");
                }

            }
        }
    }
}

From source file:com.googlecode.androidannotations.processing.rest.RestProcessor.java

@Override
public void process(Element element, JCodeModel codeModel, EBeansHolder activitiesHolder) throws Exception {

    RestImplementationHolder holder = restImplementationHolder.create(element);

    TypeElement typeElement = (TypeElement) element;

    holder.urlPrefix = typeElement.getAnnotation(Rest.class).value();

    String interfaceName = typeElement.getQualifiedName().toString();

    String implementationName = interfaceName + ModelConstants.GENERATION_SUFFIX;

    // holder.restImplementationClass = codeModel._class(JMod.PUBLIC |
    // JMod.ABSTRACT, implementationName, ClassType.CLASS);
    holder.restImplementationClass = codeModel._class(JMod.PUBLIC, implementationName, ClassType.CLASS);
    JClass interfaceClass = holder.refClass(interfaceName);
    holder.restImplementationClass._implements(interfaceClass);

    // RestTemplate field
    JClass restTemplateClass = holder.refClass(SPRING_REST_TEMPLATE_QUALIFIED_NAME);
    holder.restTemplateField = holder.restImplementationClass.field(JMod.PRIVATE, restTemplateClass,
            "restTemplate");

    // Default constructor
    JMethod defaultConstructor = holder.restImplementationClass.constructor(JMod.PUBLIC);
    defaultConstructor.body().assign(holder.restTemplateField, JExpr._new(restTemplateClass));

    // RestTemplate constructor
    JMethod restTemplateConstructor = holder.restImplementationClass.constructor(JMod.PUBLIC);
    JVar restTemplateParam = restTemplateConstructor.param(restTemplateClass, "restTemplate");
    restTemplateConstructor.body().assign(JExpr._this().ref(holder.restTemplateField), restTemplateParam);

    // RequestFactory constructor
    JMethod requestFactoryConstructor = holder.restImplementationClass.constructor(JMod.PUBLIC);
    JClass requestFactoryClass = holder.refClass("org.springframework.http.client.ClientHttpRequestFactory");
    JVar requestFactoryParam = requestFactoryConstructor.param(requestFactoryClass, "requestFactory");
    requestFactoryConstructor.body().assign(holder.restTemplateField,
            JExpr._new(restTemplateClass).arg(requestFactoryParam));

    // Implement getRestTemplate method
    List<? extends Element> enclosedElements = typeElement.getEnclosedElements();
    List<ExecutableElement> methods = ElementFilter.methodsIn(enclosedElements);
    for (ExecutableElement method : methods) {
        if (method.getParameters().size() == 0
                && method.getReturnType().toString().equals(SPRING_REST_TEMPLATE_QUALIFIED_NAME)) {
            String methodName = method.getSimpleName().toString();
            JMethod getRestTemplateMethod = holder.restImplementationClass.method(JMod.PUBLIC,
                    restTemplateClass, methodName);
            getRestTemplateMethod.annotate(Override.class);
            getRestTemplateMethod.body()._return(holder.restTemplateField);
            break; // Only one implementation
        }//from  www .ja v a  2  s . co m
    }

    for (ExecutableElement method : methods) {
        List<? extends VariableElement> parameters = method.getParameters();
        if (parameters.size() == 1 && method.getReturnType().getKind() == TypeKind.VOID) {
            VariableElement firstParameter = parameters.get(0);
            if (firstParameter.asType().toString().equals(SPRING_REST_TEMPLATE_QUALIFIED_NAME)) {
                String methodName = method.getSimpleName().toString();
                JMethod setRestTemplateMethod = holder.restImplementationClass.method(JMod.PUBLIC,
                        codeModel.VOID, methodName);
                setRestTemplateMethod.annotate(Override.class);

                JVar restTemplateSetterParam = setRestTemplateMethod.param(restTemplateClass,
                        firstParameter.getSimpleName().toString());

                setRestTemplateMethod.body().assign(_this().ref(holder.restTemplateField),
                        restTemplateSetterParam);
                break; // Only one implementation
            }
        }
    }

}

From source file:org.mule.devkit.module.generation.JaxbTransformerGenerator.java

private DefinedClass getJaxbTransformerClass(ExecutableElement executableElement, VariableElement variable) {
    DeclaredType declaredType = (DeclaredType) variable.asType();
    XmlType xmlType = declaredType.asElement().getAnnotation(XmlType.class);
    TypeElement parentClass = ElementFilter.typesIn(Arrays.asList(executableElement.getEnclosingElement()))
            .get(0);/*from ww w  .j  a v a  2 s .c  o  m*/
    String packageName = context.getNameUtils()
            .getPackageName(context.getElementsUtils().getBinaryName(parentClass).toString()) + ".config";
    Package pkg = context.getCodeModel()._package(packageName);
    DefinedClass jaxbTransformer = pkg._class(StringUtils.capitalize(xmlType.name()) + "JaxbTransformer",
            AbstractTransformer.class, new Class<?>[] { DiscoverableTransformer.class });

    return jaxbTransformer;
}

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());
                }// w  ww  .  java2  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:cop.raml.utils.ImportScanner.java

@Override
public Void visitVariable(VariableElement element, DirectoryStream.Filter<String> filter) {
    if (element.asType().getKind() == TypeKind.DECLARED)
        addAcceptedType(element.asType().toString(), filter);
    return super.visitVariable(element, filter);
}