public static WildcardTypeName supertypeOf(Type lowerBound) { return supertypeOf(TypeName.get(lowerBound)); }
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)); } }
WildcardTypeName.supertypeOf(Transaction.class), sharedTriggersType); TypeName sharedTriggersListType = ParameterizedTypeName.get( ClassName.get(List.class), functionOfTransactionAndTriggersType);
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 WildcardTypeName supertypeOf(Type lowerBound) { return supertypeOf(TypeName.get(lowerBound)); }
public static WildcardTypeName supertypeOf(Type lowerBound) { return supertypeOf(TypeName.get(lowerBound)); }
/** * A {@link MethodSpec} for the subscribe() method which is inherited from the interface. */ private MethodSpec subscribeMethod() { return MethodSpec.methodBuilder(SUBSCRIBE_METHOD) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterizedTypeName.get(ClassName.get(Subscriber.class), WildcardTypeName.supertypeOf(responseType())), SUBSCRIBER) .addStatement("$1L.onSubscribe($2T.builder().$1L($1L).$3L($3L).build())", SUBSCRIBER, ResponsesSubscription.class, NEXT_PAGE_FETCHER_MEMBER) .build(); }
/** * A {@link MethodSpec} for the subscribe() method which is inherited from the interface. */ private MethodSpec subscribeMethod() { return MethodSpec.methodBuilder(SUBSCRIBE_METHOD) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterizedTypeName.get(ClassName.get(Subscriber.class), WildcardTypeName.supertypeOf(responseType())), SUBSCRIBER) .addStatement("$1L.onSubscribe($2T.builder().$1L($1L).$3L($3L).build())", SUBSCRIBER, ResponsesSubscription.class, NEXT_PAGE_FETCHER_MEMBER) .build(); }
@Override TypeName toTypeName(String name, Optional<? extends TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get(name, typeName); }
@Override TypeName toTypeNameRaw(String name, Optional<TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get("?"); }
private TypeSpec anonymousClassWithEmptySubscription() { return TypeSpec.anonymousClassBuilder("$L, $L, true", CLIENT_MEMBER, REQUEST_MEMBER) .addSuperinterface(className()) .addMethod(MethodSpec.methodBuilder(SUBSCRIBE_METHOD) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterizedTypeName.get(ClassName.get(Subscriber.class), WildcardTypeName.supertypeOf(responseType())), SUBSCRIBER) .addStatement("$L.onSubscribe(new $T($L))", SUBSCRIBER, TypeName.get(EmptySubscription.class), SUBSCRIBER) .build()) .build(); } }
@Override TypeName toTypeNameUnbounded(String name, Optional<TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get(name); } },
@Override TypeName toTypeNameUnbounded(String name, Optional<TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get(name); } },
@Override TypeName toTypeName(String name, Optional<? extends TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get(name, typeName); }
@Override TypeName toTypeNameRaw(String name, Optional<TypeName> maybeTypeName) { TypeName typeName = maybeTypeName.get(); return isWildcard(name) ? WildcardTypeName.supertypeOf(typeName) : TypeVariableName.get("?"); }
private TypeSpec anonymousClassWithEmptySubscription() { return TypeSpec.anonymousClassBuilder("$L, $L, true", CLIENT_MEMBER, REQUEST_MEMBER) .addSuperinterface(className()) .addMethod(MethodSpec.methodBuilder(SUBSCRIBE_METHOD) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterizedTypeName.get(ClassName.get(Subscriber.class), WildcardTypeName.supertypeOf(responseType())), SUBSCRIBER) .addStatement("$L.onSubscribe(new $T($L))", SUBSCRIBER, TypeName.get(EmptySubscription.class), SUBSCRIBER) .build()) .build(); } }
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; }
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)); } }
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 WildcardTypeName wildcardName( JWildcardType type ) { switch ( type.getBoundType() ) { case SUPER: return WildcardTypeName.supertypeOf( typeName( type.getFirstBound() ) ); default: return WildcardTypeName.subtypeOf( typeName( type.getFirstBound() ) ); } }