Refine search
private TypeName getInitialStateGeneric(boolean resolved) { if (resolved) { return get(target.classPackage, builderClassName(), RESOLVED_OPTIONAL_SEQUENCE_CLASS); } final ClassName optionalSequence = get(target.classPackage, builderClassName(), OPTIONAL_SEQUENCE_CLASS); return TypeVariableName.get(OPTIONAL_SEQUENCE_GENERIC, optionalSequence); }
TypeVariableName typeVariableName = TypeVariableName.get("T").withBounds(Type.class); .addParameter(ParameterizedTypeName.get(ClassName.get(List.class), typeVariableName), "values") .addStatement("super($L, $N)", length, "values") .build(); className = ClassName.get(packageName, superclass.getSimpleName() + length); .classBuilder(className.simpleName()) .addTypeVariable(typeVariableName) .addJavadoc(CODEGEN_WARNING)
@Override public TypeVariableName annotated(List<AnnotationSpec> annotations) { return new TypeVariableName(name, bounds, annotations); }
ClassName activityClassName = ClassName.bestGuess(activityName); print("activityClassName = "+activityClassName);//MainActivity ClassName viewBuild = ClassName.get(ViewBinder.class.getPackage().getName(), ViewBinder.class.getSimpleName()); // print("viewBuild = "+viewBuild);//com.wenld.ViewBinder .addTypeVariable(TypeVariableName.get("T", activityClassName)) .addSuperinterface(ParameterizedTypeName.get(viewBuild,activityClassName)); ClassName viewClass = ClassName.bestGuess(pacageName);
private MethodSpec serviceConfigurationConsumerBuilderMethod() { ClassName serviceConfiguration = ClassName.get(basePackage, model.getCustomizationConfig().getServiceSpecificClientConfigClass()); TypeName consumerBuilder = ParameterizedTypeName.get(ClassName.get(Consumer.class), serviceConfiguration.nestedClass("Builder")); return MethodSpec.methodBuilder("serviceConfiguration") .addModifiers(Modifier.DEFAULT, Modifier.PUBLIC) .returns(TypeVariableName.get("B")) .addParameter(consumerBuilder, "serviceConfiguration") .addStatement("return serviceConfiguration($T.builder().applyMutation(serviceConfiguration).build())", serviceConfiguration) .build(); }
private TypeName getOverridenReturnTypeDefinition(final ClassName returnClazz, final String[] typeValues) { return ParameterizedTypeName.get(returnClazz, Stream.of(typeValues).map(tv -> { try { return ClassName.get(Class.forName(tv)); } catch (ClassNotFoundException cnfe) { if (tv.contains("extends")) { final String[] sides = tv.toString().split(" extends "); final TypeVariableName name = TypeVariableName.get(sides[0]); try { name.withBounds(ClassName.get(Class.forName(sides[1]))); } catch (Exception ex) { name.withBounds(TypeVariableName.get(sides[1])); } return name; } else { return TypeVariableName.get(tv); } } }).collect(Collectors.toList()).toArray(new TypeName[typeValues.length])); }
final boolean isView = isAssignable(classElement, VIEW_CLASS_NAME); final TypeVariableName genericType = TypeVariableName.get("T", TypeName.get(eraseGenericIfNecessary(classElement.asType()))); superTypeName = ParameterizedTypeName.get(ClassName.bestGuess(isView ? INJECTOR_VIEW_CLASS_NAME : INJECTOR_OBJECT_CLASS_NAME), genericType); } else { ClassName rawType = ClassName.bestGuess(eraseGenericIfNecessary(superType).toString() + STATE_SAVER_SUFFIX); if (!rawType.toString().equals(rawType.reflectionName())) { rawType = ClassName.bestGuess(rawType.reflectionName());
@Override public TypeName visitTypeVariable(javax.lang.model.type.TypeVariable t, Void p) { return TypeVariableName.get(t, typeVariables); }
public TypeName getParameterizedParentTypeName() { if (parentUsedTypeParameters.size() > 0) { List<TypeName> usedParameters = new ArrayList<>(); for (String parameter : parentUsedTypeParameters) { if (parameter.indexOf(".") > 0) { usedParameters.add(ClassName.bestGuess(parameter)); } else { usedParameters.add(TypeVariableName.get(parameter)); } } return ParameterizedTypeName.get((ClassName)parentTypeName, usedParameters.toArray(new TypeName[usedParameters.size()])); } else { return parentTypeName; } }
JavaFile brewJava() { TypeName targetType = TypeVariableName.get("T"); TypeSpec.Builder builder = TypeSpec.classBuilder(injectingClassName.simpleName()) .addModifiers(Modifier.PUBLIC) .addTypeVariable(TypeVariableName.get("T", targetTypeName)) .addSuperinterface(PARAMETERS_INJECTOR) .addMethod(createInjectMethod(targetType)); // for (FiledInjecting filed : filedInjectingList) { // builder.addField(TypeName.get(filed.getTypeMirror()), filed.getName()); // } return JavaFile.builder(injectingClassName.packageName(), builder.build()) .addFileComment("Generated code from Router. Do not modify!") .build(); }
@Override protected TypeSpec.Builder createClassBuilder() { return TypeSpec.classBuilder(getClassDetail().getGeneratedClassName()) .superclass(ParameterizedTypeName.get( getClassDetail().getSuperClassName(), TypeVariableName.get(getClassDetail().getTypeElement().asType()), TypeVariableName.get(getClassDetail().getViewTypeParameterClassName().simpleName()))) .addModifiers(Modifier.PUBLIC) .addAnnotation(Keep.class); }
@Override public MethodSpec.Builder generate(String name, AnnotatedPresenter ap, TypeName returns) { List<ClassName> bounds = new ArrayList<>(2); bounds.add(ap.getViewInterface()); if (ViewType.VIEW.equals(ap.getViewType()) || ViewType.DAGGER_VIEW.equals(ap.getViewType())) { bounds.add(SlickProcessor.ClASS_NAME_ON_DESTROY_LISTENER); } final TypeVariableName typeVariableName = TypeVariableName.get("T", "bind".equals(name) ? ap.getView() : ap.getViewType().className()).withBounds(bounds); return MethodSpec.methodBuilder(name) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .addTypeVariable(typeVariableName) .addParameter(typeVariableName, ap.getViewVarName()) .addParameters(addExtraParameters(ap)) .returns(returns); }
public TypeVariableName withBounds(TypeName... bounds) { return withBounds(Arrays.asList(bounds)); }
/** * Generates the class code and writes to a new source file. * * @param filer Annotation filer instance provided by {@link BarberProcessor} * @throws IOException */ void writeToFiler(Filer filer) throws IOException { ClassName targetClassName = ClassName.get(classPackage, targetClass); TypeSpec.Builder barberShop = TypeSpec.classBuilder(className) .addModifiers(Modifier.PUBLIC) .addTypeVariable(TypeVariableName.get("T", targetClassName)) .addMethod(generateStyleMethod()) .addMethod(generateCheckParentMethod()); if (parentBarbershop == null) { barberShop.addSuperinterface(ParameterizedTypeName.get(ClassName.get(Barber.IBarbershop.class), TypeVariableName.get("T"))); barberShop.addField(FieldSpec.builder(WeakHashSet.class, "lastStyledTargets", Modifier.PROTECTED).initializer("new $T()", WeakHashSet.class).build()); } else { barberShop.superclass(ParameterizedTypeName.get(ClassName.bestGuess(parentBarbershop), TypeVariableName.get("T"))); } JavaFile javaFile = JavaFile.builder(classPackage, barberShop.build()).build(); javaFile.writeTo(filer); }
private MethodSpec serviceConfigurationConsumerBuilderMethod() { ClassName serviceConfiguration = ClassName.get(basePackage, model.getCustomizationConfig().getServiceSpecificClientConfigClass()); TypeName consumerBuilder = ParameterizedTypeName.get(ClassName.get(Consumer.class), serviceConfiguration.nestedClass("Builder")); return MethodSpec.methodBuilder("serviceConfiguration") .addModifiers(Modifier.DEFAULT, Modifier.PUBLIC) .returns(TypeVariableName.get("B")) .addParameter(consumerBuilder, "serviceConfiguration") .addStatement("return serviceConfiguration($T.builder().applyMutation(serviceConfiguration).build())", serviceConfiguration) .build(); }
private TypeName getOverridenReturnTypeDefinition(final ClassName returnClazz, final String[] typeValues) { return ParameterizedTypeName.get(returnClazz, Stream.of(typeValues).map(tv -> { try { return ClassName.get(Class.forName(tv)); } catch (ClassNotFoundException cnfe) { if (tv.contains("extends")) { final String[] sides = tv.toString().split(" extends "); final TypeVariableName name = TypeVariableName.get(sides[0]); try { name.withBounds(ClassName.get(Class.forName(sides[1]))); } catch (Exception ex) { name.withBounds(TypeVariableName.get(sides[1])); } return name; } else { return TypeVariableName.get(tv); } } }).collect(Collectors.toList()).toArray(new TypeName[typeValues.length])); }
/** Returns type variable equivalent to {@code type}. */ public static TypeVariableName get(java.lang.reflect.TypeVariable<?> type) { return get(type, new LinkedHashMap<>()); }
@Test public void testGetTypeVariablesOnParameterizedTypeRecursive() { TypeVariableName type1 = TypeVariableName.get("R"); TypeVariableName type2 = TypeVariableName.get("S"); TypeVariableName type3 = TypeVariableName.get("T"); TypeName type = ParameterizedTypeName.get( ClassName.bestGuess("java.lang.Object"), type1, type2, ParameterizedTypeName.get(ClassName.bestGuess("java.lang.Object"), type3)); assertThat(MethodParamModelUtils.getTypeVariables(type)).hasSize(3); assertThat(MethodParamModelUtils.getTypeVariables(type)).contains(type1); assertThat(MethodParamModelUtils.getTypeVariables(type)).contains(type2); assertThat(MethodParamModelUtils.getTypeVariables(type)).contains(type3); }
public TypeVariableName withBounds(Type... bounds) { return withBounds(TypeName.list(bounds)); }
static TypeName get(Type type, Map<Type, TypeVariableName> map) { if (type instanceof Class<?>) { Class<?> classType = (Class<?>) type; if (type == void.class) return VOID; if (type == boolean.class) return BOOLEAN; if (type == byte.class) return BYTE; if (type == short.class) return SHORT; if (type == int.class) return INT; if (type == long.class) return LONG; if (type == char.class) return CHAR; if (type == float.class) return FLOAT; if (type == double.class) return DOUBLE; if (classType.isArray()) return ArrayTypeName.of(get(classType.getComponentType(), map)); return ClassName.get(classType); } else if (type instanceof ParameterizedType) { return ParameterizedTypeName.get((ParameterizedType) type, map); } else if (type instanceof WildcardType) { return WildcardTypeName.get((WildcardType) type, map); } else if (type instanceof TypeVariable<?>) { return TypeVariableName.get((TypeVariable<?>) type, map); } else if (type instanceof GenericArrayType) { return ArrayTypeName.get((GenericArrayType) type, map); } else { throw new IllegalArgumentException("unexpected type: " + type); } }