public static WildcardTypeName subtypeOf(Type upperBound) { return subtypeOf(TypeName.get(upperBound)); }
static TypeName get( javax.lang.model.type.WildcardType mirror, Map<TypeParameterElement, TypeVariableName> typeVariables) { TypeMirror extendsBound = mirror.getExtendsBound(); if (extendsBound == null) { TypeMirror superBound = mirror.getSuperBound(); if (superBound == null) { return subtypeOf(Object.class); } else { return supertypeOf(TypeName.get(superBound, typeVariables)); } } else { return subtypeOf(TypeName.get(extendsBound, typeVariables)); } }
@Override public TypeName visitWildcard(javax.lang.model.type.WildcardType t, Void p) { return WildcardTypeName.get(t, typeVariables); }
@Override public WildcardTypeName annotated(List<AnnotationSpec> annotations) { return new WildcardTypeName(upperBounds, lowerBounds, concatAnnotations(annotations)); }
static TypeName get(WildcardType wildcardName, Map<Type, TypeVariableName> map) { return new WildcardTypeName( list(wildcardName.getUpperBounds(), map), list(wildcardName.getLowerBounds(), map)); } }
if ( thisMirror.getKind() == TypeKind.WILDCARD ) typeNames[i] = WildcardTypeName.get(thisMirror); typeNames[i] = WildcardTypeName.subtypeOf(TypeName.get(thisMirror).box()); TypeName wildcareType = WildcardTypeName.subtypeOf(mainType); ParameterizedTypeName type = ParameterizedTypeName.get(matchClassName, wildcareType); tupleMethod.addParameter(type, item.getName());
public static WildcardTypeName supertypeOf(Type lowerBound) { return supertypeOf(TypeName.get(lowerBound)); }
@Override public TypeName withoutAnnotations() { return new WildcardTypeName(upperBounds, lowerBounds); }
WildcardTypeName.supertypeOf(Transaction.class), sharedTriggersType); TypeName sharedTriggersListType = ParameterizedTypeName.get( ClassName.get(List.class), functionOfTransactionAndTriggersType);
static TypeName get(WildcardType wildcardName, Map<Type, TypeVariableName> map) { return new WildcardTypeName( list(wildcardName.getUpperBounds(), map), list(wildcardName.getLowerBounds(), map)); } }
@Override public WildcardTypeName annotated(List<AnnotationSpec> annotations) { return new WildcardTypeName(upperBounds, lowerBounds, concatAnnotations(annotations)); }
/** * Returns a type that represents an unknown type that extends {@code bound}. For example, if * {@code bound} is {@code CharSequence.class}, this returns {@code ? extends CharSequence}. If * {@code bound} is {@code Object.class}, this returns {@code ?}, which is shorthand for {@code * ? extends Object}. */ public static WildcardTypeName subtypeOf(TypeName upperBound) { return new WildcardTypeName(Collections.singletonList(upperBound), Collections.emptyList()); }
private static TypeName[] getBuilderGenericTypes( final TypeName type, final ClassName builderClass) { final TypeName typeParameter = type instanceof ParameterizedTypeName && !((ParameterizedTypeName) type).typeArguments.isEmpty() ? ((ParameterizedTypeName) type).typeArguments.get(0) : WildcardTypeName.subtypeOf(ClassNames.COMPONENT_LIFECYCLE); if (builderClass.equals(ClassNames.COMPONENT_BUILDER)) { return new TypeName[] {WildcardTypeName.subtypeOf(TypeName.OBJECT)}; } else { return new TypeName[] {typeParameter}; } }
static TypeName get( javax.lang.model.type.WildcardType mirror, Map<TypeParameterElement, TypeVariableName> typeVariables) { TypeMirror extendsBound = mirror.getExtendsBound(); if (extendsBound == null) { TypeMirror superBound = mirror.getSuperBound(); if (superBound == null) { return subtypeOf(Object.class); } else { return supertypeOf(TypeName.get(superBound, typeVariables)); } } else { return subtypeOf(TypeName.get(extendsBound, typeVariables)); } }
private List<FieldSpec> getFields() { List<FieldSpec> results = new ArrayList<>(); TypeName functionOfTransactionAndTriggersType = ParameterizedTypeName.get( ClassName.get(Function.class), WildcardTypeName.supertypeOf(Transaction.class), sharedTriggersType); results.add(getDefaultNamespaceField()); results.add(FieldSpec.builder(ParameterizedTypeName.get( ClassName.get(List.class), functionOfTransactionAndTriggersType), "sharedTriggers") .addModifiers(Modifier.PRIVATE, Modifier.FINAL) .build()); results.add(FieldSpec.builder(Namespace.class, "namespace") .addModifiers(Modifier.PRIVATE, Modifier.FINAL) .build()); return results; }
public static TypeName get(javax.lang.model.type.WildcardType mirror) { return get(mirror, new LinkedHashMap<>()); }
static TypeName get(WildcardType wildcardName, Map<Type, TypeVariableName> map) { return new WildcardTypeName( list(wildcardName.getUpperBounds(), map), list(wildcardName.getLowerBounds(), map)); } }
@Override public WildcardTypeName annotated(List<AnnotationSpec> annotations) { return new WildcardTypeName(upperBounds, lowerBounds, concatAnnotations(annotations)); }
/** * Returns a type that represents an unknown supertype of {@code bound}. For example, if {@code * bound} is {@code String.class}, this returns {@code ? super String}. */ public static WildcardTypeName supertypeOf(TypeName lowerBound) { return new WildcardTypeName(Collections.singletonList(OBJECT), Collections.singletonList(lowerBound)); }
private static TypeName[] getBuilderGenericTypes(TypeName type, ClassName builderClass) { if (builderClass.equals(ClassNames.COMPONENT_BUILDER) || builderClass.equals(ClassNames.SECTION_BUILDER)) { return new TypeName[] {WildcardTypeName.subtypeOf(TypeName.OBJECT)}; } else { final TypeName typeParameter = type instanceof ParameterizedTypeName && !((ParameterizedTypeName) type).typeArguments.isEmpty() ? ((ParameterizedTypeName) type).typeArguments.get(0) : WildcardTypeName.subtypeOf(ClassNames.COMPONENT); return new TypeName[]{typeParameter}; } }