private TypeMirror getWildcardType(String type, String elementType) { TypeElement arrayList = processingEnv.getElementUtils().getTypeElement(type); TypeMirror elType = processingEnv.getElementUtils().getTypeElement(elementType).asType(); return processingEnv.getTypeUtils() .getDeclaredType(arrayList, processingEnv.getTypeUtils().getWildcardType(elType, null)); }
private void createDaoParametrizedTypes() { daoTypeElement = helper.typeElementFromQualifiedName(OrmLiteClasses.DAO); runtimeExceptionDaoTypeElement = helper.typeElementFromQualifiedName(OrmLiteClasses.RUNTIME_EXCEPTION_DAO); Types typeUtils = helper.getTypeUtils(); TypeMirror wildcardType = typeUtils.getWildcardType(null, null); daoParametrizedType = helper.getTypeUtils().getDeclaredType(daoTypeElement, wildcardType, wildcardType); runtimeExceptionDaoParametrizedType = helper.getTypeUtils().getDeclaredType(runtimeExceptionDaoTypeElement, wildcardType, wildcardType); } }
private static TypeMirror wildcardSuperMap( TypeMirror keyType, TypeMirror valueType, Elements elements, Types types) { TypeElement mapType = elements.getTypeElement(Map.class.getName()); return types.getWildcardType(null, types.getDeclaredType(mapType, keyType, valueType)); } }
private static TypeMirror wildcardSuperSortedSet( TypeMirror elementType, Elements elements, Types types) { TypeElement setType = elements.getTypeElement(SortedSet.class.getName()); return types.getWildcardType(null, types.getDeclaredType(setType, elementType)); } }
private static TypeMirror wildcardSuperSet( TypeMirror elementType, Elements elements, Types types) { TypeElement setType = elements.getTypeElement(Set.class.getName()); return types.getWildcardType(null, types.getDeclaredType(setType, elementType)); } }
/** * Returns {@code ? super List<elementType>}. */ private static TypeMirror wildcardSuperList( TypeMirror elementType, Elements elements, Types types) { TypeElement listType = elements.getTypeElement(List.class.getName()); return types.getWildcardType(null, types.getDeclaredType(listType, elementType)); } }
upperBound = null; return typeUtils.getWildcardType( typeMirror(typeUtils, elementUtils, upperBound), typeMirror(typeUtils, elementUtils, lowerBound));
@Override public WildcardType getWildcardType(TypeMirror arg0, TypeMirror arg1) { return realImpl.getWildcardType(arg0, arg1); }
@Test public void testErasesToAnyOf_wildcardType() { WildcardType wildcard = model.typeUtils().getWildcardType(null, null); assertTrue(ModelUtils.erasesToAnyOf( (DeclaredType) model.typeMirror("java.util.List", wildcard), List.class)); }
@Test public void testHandlesWildcards() { // Get a functional type representing Consumer<? super List<Integer>> TypeElement list = model.elementUtils().getTypeElement(List.class.getName()); TypeMirror integer = model.elementUtils().getTypeElement(Integer.class.getName()).asType(); DeclaredType intList = model.typeUtils().getDeclaredType(list, integer); WildcardType superIntList = model.typeUtils().getWildcardType(null, intList); FunctionalType consumerSuperIntList = FunctionalType.consumer(superIntList); FunctionalType result = FunctionalType.functionalTypeAcceptedByMethod( (DeclaredType) model.typeElement(Foo.class).asType(), "mutate", consumerSuperIntList, model.elementUtils(), model.typeUtils()); assertEquals( QualifiedName.of(IntListConsumer.class).withParameters(), result.getFunctionalInterface()); }
@Test public void testUpperBound_unknownType() { // ? -> Object TypeMirror result = ModelUtils.upperBound( model.elementUtils(), model.typeUtils().getWildcardType(null, null)); assertSameType(model.typeMirror("Object"), result); }
@Test public void testUpperBound_superBound() { // ? super T -> Object TypeMirror result = ModelUtils.upperBound( model.elementUtils(), model.typeUtils().getWildcardType(null, model.typeMirror("Number"))); assertSameType(model.typeMirror("Object"), result); }
@Test public void testUpperBound_extendsBound() { // ? extends T -> T TypeMirror result = ModelUtils.upperBound( model.elementUtils(), model.typeUtils().getWildcardType(model.typeMirror("Number"), null)); assertSameType(model.typeMirror("Number"), result); }
private static TypeMirror wildcardSuperMap( TypeMirror keyType, TypeMirror valueType, Elements elements, Types types) { TypeElement mapType = elements.getTypeElement(Map.class.getName()); return types.getWildcardType(null, types.getDeclaredType(mapType, keyType, valueType)); } }
private static TypeMirror wildcardSuperSortedSet( TypeMirror elementType, Elements elements, Types types) { TypeElement setType = elements.getTypeElement(SortedSet.class.getName()); return types.getWildcardType(null, types.getDeclaredType(setType, elementType)); } }
public static void init(ProcessingEnvironment env) { types = env.getTypeUtils(); elements = env.getElementUtils(); factoryInterface = types.getDeclaredType( elements.getTypeElement("com.artemis.EntityFactory"), types.getWildcardType(null, null)); ObjectElement = (TypeElement) types.getDeclaredType( elements.getTypeElement("java.lang.Object")).asElement(); }
public TypeMirror createWithWildcard(String qualifiedName) { TypeElement element = elements.getTypeElement(qualifiedName); int typeParametersCount = element.getTypeParameters().size(); TypeMirror[] typeArguments = new TypeMirror[typeParametersCount]; for (int i = 0; i < typeParametersCount; ++i) { typeArguments[i] = types.getWildcardType(null, null); } return types.getDeclaredType(element, typeArguments); }
public static boolean isCollection(DeclaredType declaredType, MapperGeneratorContext context) { TypeElement typeElement1 = context.elements.getTypeElement("java.util.Collection"); DeclaredType declaredType2 = context.type.getDeclaredType(typeElement1, context.type.getWildcardType(null, null)); return declaredType != null && context.type.isAssignable(declaredType, declaredType2); }
public WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound) { while (extendsBound instanceof DecoratedTypeMirror) { extendsBound = ((DecoratedTypeMirror) extendsBound).getDelegate(); } while (superBound instanceof DecoratedTypeMirror) { superBound = ((DecoratedTypeMirror) superBound).getDelegate(); } return delegate.getWildcardType(extendsBound, superBound); }
@Override public boolean accepts(TypeMirror type) { DeclaredType lazyList = types.getDeclaredType(typeHelper.elementOf(List.class), types.getWildcardType(null, null)); if (!types.isAssignable(typeHelper.getWrappedType(type), lazyList)) { return false; } TypeMirror listType = typeHelper.singleGenericParameter(type); return marshallerRegistry.getMarshaller(listType) != null && !entityContext.containsEntity(listType.toString()); }