use of javax.lang.model.util.Types in project qpid-broker-j by apache.
the class OperationAnnotationValidator method checkInterfaceExtendsConfiguredObject.
public void checkInterfaceExtendsConfiguredObject(final TypeElement annotationElement, final Element e) {
Types typeUtils = processingEnv.getTypeUtils();
TypeMirror configuredObjectType = getErasure("org.apache.qpid.server.model.ConfiguredObject");
TypeElement parent = (TypeElement) e.getEnclosingElement();
if (!typeUtils.isAssignable(typeUtils.erasure(parent.asType()), configuredObjectType)) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@" + annotationElement.getSimpleName() + " can only be applied to methods within an interface which extends " + configuredObjectType.toString() + " which does not apply to " + parent.asType().toString(), e);
}
}
use of javax.lang.model.util.Types in project qpid-broker-j by apache.
the class CompositeTypeConstructorGenerator method getErasure.
private static TypeMirror getErasure(ProcessingEnvironment processingEnv, final String className) {
final Types typeUtils = processingEnv.getTypeUtils();
final Elements elementUtils = processingEnv.getElementUtils();
return typeUtils.erasure(elementUtils.getTypeElement(className).asType());
}
use of javax.lang.model.util.Types in project auto by google.
the class AutoServiceProcessor method checkImplementer.
/**
* Verifies {@link ServiceProvider} constraints on the concrete provider class.
* Note that these constraints are enforced at runtime via the ServiceLoader,
* we're just checking them at compile time to be extra nice to our users.
*/
private boolean checkImplementer(TypeElement providerImplementer, TypeElement providerType) {
String verify = processingEnv.getOptions().get("verify");
if (verify == null || !Boolean.valueOf(verify)) {
return true;
}
// TODO: We're currently only enforcing the subtype relationship
// constraint. It would be nice to enforce them all.
Types types = processingEnv.getTypeUtils();
return types.isSubtype(providerImplementer.asType(), providerType.asType());
}
use of javax.lang.model.util.Types in project requery by requery.
the class AttributeMember method checkMemberType.
private void checkMemberType(ProcessingEnvironment processingEnvironment, TypeMirror type, Set<ElementValidator> validators) {
builderClass = AttributeBuilder.class;
Types types = processingEnvironment.getTypeUtils();
isBoolean = type.getKind() == TypeKind.BOOLEAN;
if (type.getKind() == TypeKind.DECLARED) {
TypeElement element = (TypeElement) types.asElement(type);
if (element != null) {
// only set if the attribute is relational
if (cardinality != null) {
isIterable = Mirrors.isInstance(types, element, Iterable.class);
}
isMap = Mirrors.isInstance(types, element, Map.class);
if (isMap && cardinality != null) {
builderClass = MapAttributeBuilder.class;
}
isOptional = Mirrors.isInstance(types, element, Optional.class);
isBoolean = Mirrors.isInstance(types, element, Boolean.class);
}
}
if (isIterable) {
ElementValidator validator = validateCollectionType(processingEnvironment);
if (validator != null) {
validators.add(validator);
}
}
}
use of javax.lang.model.util.Types in project RoboBinding by RoboBinding.
the class TypeMirrorWrapperTest method supportedTypeMirrors.
@DataPoints("supportedTypeMirrors")
public static TypeMirrorToWrapped[] supportedTypeMirrors() {
Types types = compilation.getTypes();
NoType voidType = types.getNoType(TypeKind.VOID);
PrimitiveType primitiveType = types.getPrimitiveType(TypeKind.INT);
Elements elements = compilation.getElements();
DeclaredType declaredType = (DeclaredType) elements.getTypeElement(Object.class.getName()).asType();
ArrayType arrayType = types.getArrayType(declaredType);
return new TypeMirrorToWrapped[] { a(voidType).itsWrapped(WrappedVoidType.class), a(primitiveType).itsWrapped(WrappedPrimitiveType.class), a(declaredType).itsWrapped(WrappedDeclaredType.class), a(arrayType).itsWrapped(WrappedArrayType.class) };
}
Aggregations