Example usage for javax.lang.model.type TypeKind DECLARED

List of usage examples for javax.lang.model.type TypeKind DECLARED

Introduction

In this page you can find the example usage for javax.lang.model.type TypeKind DECLARED.

Prototype

TypeKind DECLARED

To view the source code for javax.lang.model.type TypeKind DECLARED.

Click Source Link

Document

A class or interface type.

Usage

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

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

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

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

From source file:android.databinding.tool.store.SetterStore.java

private static boolean hasTypeVar(TypeMirror typeMirror) {
    TypeKind kind = typeMirror.getKind();
    if (kind == TypeKind.TYPEVAR) {
        return true;
    } else if (kind == TypeKind.ARRAY) {
        return hasTypeVar(((ArrayType) typeMirror).getComponentType());
    } else if (kind == TypeKind.DECLARED) {
        DeclaredType declaredType = (DeclaredType) typeMirror;
        List<? extends TypeMirror> typeArguments = declaredType.getTypeArguments();
        if (typeArguments == null || typeArguments.isEmpty()) {
            return false;
        }//  ww w .ja v  a 2  s.c o  m
        for (TypeMirror arg : typeArguments) {
            if (hasTypeVar(arg)) {
                return true;
            }
        }
        return false;
    } else {
        return false;
    }
}

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);
}

From source file:com.spotify.docgenerator.JacksonJerseyAnnotationProcessor.java

/**
 * Make a {@link TypeDescriptor} by examining the {@link TypeMirror} and recursively looking
 * at the generic arguments to the type (if they exist).
 */// www.java  2 s.  c om
private TypeDescriptor makeTypeDescriptor(final TypeMirror type) {
    if (type.getKind() != TypeKind.DECLARED) {
        return new TypeDescriptor(type.toString(), ImmutableList.<TypeDescriptor>of());
    }
    final DeclaredType dt = (DeclaredType) type;

    final String plainType = processingEnv.getTypeUtils().erasure(type).toString();
    final List<TypeDescriptor> typeArgumentsList = Lists.newArrayList();
    final List<? extends TypeMirror> typeArguments = dt.getTypeArguments();
    for (final TypeMirror arg : typeArguments) {
        typeArgumentsList.add(makeTypeDescriptor(arg));
    }
    return new TypeDescriptor(plainType, typeArgumentsList);
}

From source file:org.versly.rest.wsdoc.AnnotationProcessor.java

private TypeMirror unwrapReturnType(TypeMirror originalReturnType) {
    if (originalReturnType.getKind() != TypeKind.DECLARED) {
        return originalReturnType;
    }/*  ww  w .j a  va  2  s. co  m*/

    DeclaredType declaredType = (DeclaredType) originalReturnType;
    if (declaredType.getTypeArguments().size() == 0) {
        return originalReturnType;
    }

    TypeElement element = (TypeElement) declaredType.asElement();

    // For Spring's Async Support
    if ("org.springframework.web.context.request.async.DeferredResult"
            .equalsIgnoreCase(element.getQualifiedName().toString())) {
        return declaredType.getTypeArguments().get(0);
    }

    // For Spring's Async Support
    if ("java.util.concurrent.Callable".equalsIgnoreCase(element.getQualifiedName().toString())) {
        return declaredType.getTypeArguments().get(0);
    }

    return originalReturnType;
}

From source file:io.soabase.halva.processor.caseclass.Templates.java

private void addClassTupleMethods(CaseClassSpec spec, TypeSpec.Builder builder, ClassName className,
        Optional<List<TypeVariableName>> typeVariableNames) {
    Optional<Class<? extends Tuple>> optionalTupleClass = Tuple.getTupleClass(spec.getItems().size());
    if (!optionalTupleClass.isPresent()) {
        return;// w  w  w.jav  a2 s . c  o  m
    }

    ClassName anyClassName = ClassName.get(Any.class);
    ClassName matchClassName = ClassName.get(AnyVal.class);
    ClassName anyClassTupleName = ClassName.get(AnyClassTuple.class);
    TypeName localCaseClassName = getLocalCaseClassName(className, typeVariableNames);
    TypeName classTupleClassName = ParameterizedTypeName.get(anyClassTupleName, localCaseClassName);

    CodeBlock.Builder returnCode = CodeBlock.builder().add("return new $T($T.Tu(", classTupleClassName,
            Tuple.class);
    IntStream.range(0, spec.getItems().size()).forEach(i -> {
        CaseClassItem item = spec.getItems().get(i);
        if (i > 0) {
            returnCode.add(", ");
        }
        returnCode.add("$T.loose($L)", anyClassName, item.getName());
    });
    spec.getItems().forEach(item -> {
    });
    returnCode.addStatement(")){}");

    MethodSpec.Builder tupleMethod = MethodSpec.methodBuilder(getClassTupleMethodName(className))
            .returns(classTupleClassName).addCode(returnCode.build())
            .addModifiers(Modifier.PUBLIC, Modifier.STATIC);
    spec.getItems().forEach(item -> {
        TypeName mainType = null;
        if (item.getType().getKind() == TypeKind.DECLARED) {
            DeclaredType declaredType = (DeclaredType) item.getType();
            List<? extends TypeMirror> typeArguments = declaredType.getTypeArguments();
            if (typeArguments.size() > 0) {
                TypeName[] typeNames = new TypeName[typeArguments.size()];
                for (int i = 0; i < typeArguments.size(); ++i) {
                    typeNames[i] = WildcardTypeName.subtypeOf(TypeName.get(typeArguments.get(i)).box());
                }
                mainType = ParameterizedTypeName.get(ClassName.get((TypeElement) declaredType.asElement()),
                        typeNames);
            }
        }
        if (mainType == null) {
            mainType = TypeName.get(item.getType()).box();
        }
        TypeName wildcareType = WildcardTypeName.subtypeOf(mainType);
        ParameterizedTypeName type = ParameterizedTypeName.get(matchClassName, wildcareType);
        tupleMethod.addParameter(type, item.getName());
    });

    if (typeVariableNames.isPresent()) {
        tupleMethod.addTypeVariables(typeVariableNames.get());
    }

    builder.addMethod(tupleMethod.build());
}

From source file:org.versly.rest.wsdoc.AnnotationProcessor.java

private JsonType jsonTypeFromTypeMirror(TypeMirror typeMirror, Collection<String> typeRecursionGuard) {

    JsonType type;/*w w w .  j  a  va 2s  .  c  om*/

    if (_memoizedTypeMirrors.containsKey(typeMirror)) {
        return _memoizedTypeMirrors.get(typeMirror);
    }

    if (isJsonPrimitive(typeMirror)) {
        type = new JsonPrimitive(typeMirror.toString());
    } else if (typeMirror.getKind() == TypeKind.DECLARED) {
        // some sort of object... walk it
        DeclaredType declaredType = (DeclaredType) typeMirror;
        type = jsonTypeForDeclaredType(declaredType, declaredType.getTypeArguments(), typeRecursionGuard);
    } else if (typeMirror.getKind() == TypeKind.VOID) {
        type = null;
    } else if (typeMirror.getKind() == TypeKind.ARRAY) {
        TypeMirror componentType = ((ArrayType) typeMirror).getComponentType();
        type = jsonTypeFromTypeMirror(componentType, typeRecursionGuard);
    } else if (typeMirror.getKind() == TypeKind.ERROR) {
        type = new JsonPrimitive("(unresolvable type)");
    } else {
        throw new UnsupportedOperationException(typeMirror.toString());
    }

    _memoizedTypeMirrors.put(typeMirror, type);
    return type;
}

From source file:com.googlecode.androidannotations.helper.ValidatorHelper.java

public void returnTypeNotGenericUnlessResponseEntity(ExecutableElement element, IsValid valid) {
    TypeMirror returnType = element.getReturnType();
    TypeKind returnKind = returnType.getKind();
    if (returnKind == TypeKind.DECLARED) {
        DeclaredType declaredReturnType = (DeclaredType) returnType;
        if (!declaredReturnType.toString().startsWith("org.springframework.http.ResponseEntity<")
                && declaredReturnType.getTypeArguments().size() > 0) {
            valid.invalidate();/*from ww  w . j  a  v a 2 s.c o  m*/
            annotationHelper.printAnnotationError(element,
                    "%s annotated methods cannot return parameterized types, except for ResponseEntity");
        }
    }
}