public static Builder builder(Type type, String name, Modifier... modifiers) { return builder(TypeName.get(type), name, modifiers); }
private static MethodSpec createService(String serviceInstanceName) { return MethodSpec.methodBuilder("createService") .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION_CONTEXT, "context").build()) .addStatement( "$L = onCreateService(context)", serviceInstanceName) .build(); }
private static MethodSpec getService(String implClass, String serviceInstanceName) { return MethodSpec.methodBuilder("getService") .addAnnotation(Override.class) .addModifiers(Modifier.PROTECTED) .returns(TypeName.OBJECT) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION, "section").build()) .addStatement("return (($L) section).$L", implClass, serviceInstanceName) .build(); } }
public Builder addParameter(TypeName type, String name, Modifier... modifiers) { return addParameter(ParameterSpec.builder(type, name, modifiers).build()); }
private static MethodSpec transferService(String implClass, String serviceInstanceName) { return MethodSpec.methodBuilder("transferService") .addAnnotation(Override.class) .returns(TypeName.VOID) .addModifiers(Modifier.PROTECTED) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION_CONTEXT, "c").build()) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION, "previous").build()) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION, "next").build()) .addStatement("$L $L = ($L) previous", implClass, "previousSection", implClass) .addStatement("$L $L = ($L) next", implClass, "nextSection", implClass) .addStatement( "nextSection.$L = previousSection.$L", serviceInstanceName, serviceInstanceName) .build(); }
private MethodSpec buildConstructor(ControllerClassInfo controllerInfo) { ParameterSpec controllerParam = ParameterSpec .builder(controllerInfo.getControllerClassType(), "controller") .build(); return MethodSpec.constructorBuilder() .addParameter(controllerParam) .addModifiers(Modifier.PUBLIC) .addStatement("this.controller = controller") .build(); }
@NonNull public Element fromBuilderDelegateMethod(@NonNull ExecutableElement method) { return new DelegateMethod(method.getSimpleName().toString(), TypeName.get(method.getReturnType()), getAnnotations(method).getLeft(), method.getParameters().stream().map(p -> ParameterSpec.builder(TypeName.get(p.asType()), p.getSimpleName().toString()).build()).collect(Collectors.toList()), method.getTypeParameters().stream().map(TypeVariableName::get).collect(Collectors.toList()), method.getModifiers(), elements.getDocComment(method)); }
@NonNull public Element fromConfigDelegateMethod(@NonNull ExecutableElement method) { return new DelegateMethod.Config(method.getSimpleName().toString(), TypeName.get(method.getReturnType()), getAnnotations(method).getLeft(), method.getParameters().stream().map(p -> ParameterSpec.builder(TypeName.get(p.asType()), p.getSimpleName().toString()).build()).collect(Collectors.toList()), method.getTypeParameters().stream().map(TypeVariableName::get).collect(Collectors.toList()), method.getModifiers(), elements.getDocComment(method)); }
public static ParameterSpec get(VariableElement element) { TypeName type = TypeName.get(element.asType()); String name = element.getSimpleName().toString(); return ParameterSpec.builder(type, name) .addModifiers(element.getModifiers()) .build(); }
private void createConfigClass(@NonNull List<Element> elements) throws IOException { final TypeSpec.Builder classBuilder = TypeSpec.classBuilder(configName) .addSuperinterface(Serializable.class) .addSuperinterface(org.acra.config.Configuration.class) .addModifiers(Modifier.PUBLIC, Modifier.FINAL); Strings.addClassJavadoc(classBuilder, ClassName.get(baseAnnotation.asType())); final MethodSpec.Builder constructor = MethodSpec.constructorBuilder().addModifiers(Modifier.PUBLIC) .addParameter(ParameterSpec.builder(ClassName.get(PACKAGE, builderName), PARAM_0).addAnnotation(Types.NON_NULL).build()); elements.stream().filter(ConfigElement.class::isInstance).map(ConfigElement.class::cast).forEach(element -> element.addToConfig(classBuilder, constructor)); classBuilder.addMethod(constructor.build()); Strings.writeClass(processingEnv.getFiler(), classBuilder.build()); }
protected static List<ParameterSpec> buildParamSpecs(List<? extends VariableElement> params) { List<ParameterSpec> result = new ArrayList<>(); for (VariableElement param : params) { Builder builder = ParameterSpec.builder(TypeName.get(param.asType()), param.getSimpleName().toString()); for (AnnotationMirror annotation : param.getAnnotationMirrors()) { builder.addAnnotation(AnnotationSpec.get(annotation)); } result.add(builder.build()); } return result; }
private MethodSpec.Builder baseResSetter(ClassName builderName) { final String parameterName = Strings.PREFIX_RES + WordUtils.capitalize(getName()); final List<AnnotationSpec> annotations = new ArrayList<>(getAnnotations()); annotations.removeIf(Arrays.asList(Types.NULLABLE, Types.NON_NULL)::contains); annotations.add(Types.STRING_RES); return MethodSpec.methodBuilder(Strings.PREFIX_SETTER + WordUtils.capitalize(parameterName)) .addParameter(ParameterSpec.builder(TypeName.INT, parameterName).addAnnotations(annotations).build()) .addModifiers(Modifier.PUBLIC) .addAnnotation(Types.NON_NULL) .returns(builderName); }
@Override public ParameterSpec apply(TypeElement typeElement) { return ParameterSpec.builder(moduleElementToLoaderClassName(typeElement), decapitalize(moduleNameToLoaderName(typeElement))).build(); } }).toList())
static List<ParameterSpec> buildParameterTypes(List<AbiDefinition.NamedType> namedTypes) { List<ParameterSpec> result = new ArrayList<>(namedTypes.size()); for (int i = 0; i < namedTypes.size(); i++) { AbiDefinition.NamedType namedType = namedTypes.get(i); String name = createValidParamName(namedType.getName(), i); String type = namedTypes.get(i).getType(); result.add(ParameterSpec.builder(buildTypeName(type), name).build()); } return result; }
default void addToBuilderInterface(@NonNull TypeSpec.Builder builder, @NonNull ClassName builderName) { MethodSpec.Builder setter = MethodSpec.methodBuilder(Strings.PREFIX_SETTER + WordUtils.capitalize(getName())) .addParameter(ParameterSpec.builder(getType(), getName()).addAnnotations(getAnnotations()).build()) .varargs(getType() instanceof ArrayTypeName) .addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT) .addAnnotation(Types.NON_NULL) .returns(builderName); configureSetter(setter); builder.addMethod(setter.build()); } }
default MethodSpec.Builder baseSetter(ClassName builderName) { MethodSpec.Builder builder = MethodSpec.methodBuilder(Strings.PREFIX_SETTER + WordUtils.capitalize(getName())); Collection<AnnotationSpec> annotations = new ArrayList<>(getAnnotations()); boolean deprecated = annotations.contains(Types.DEPRECATED); if (deprecated) { annotations.remove(Types.DEPRECATED); builder.addAnnotation(Types.DEPRECATED); } return builder .addParameter(ParameterSpec.builder(getType(), getName()).addAnnotations(annotations).build()) .varargs(getType() instanceof ArrayTypeName) .addModifiers(Modifier.PUBLIC) .addAnnotation(Types.NON_NULL) .returns(builderName); }
private static ParameterSpec parameter( final PropModel prop, final TypeName type, final String name, final AnnotationSpec... extraAnnotations) { final ParameterSpec.Builder builder = ParameterSpec.builder(type, name).addAnnotations(prop.getExternalAnnotations()); for (final AnnotationSpec annotation : extraAnnotations) { builder.addAnnotation(annotation); } return builder.build(); }
private static ParameterSpec parameter( TypeName type, String name, List<AnnotationSpec> externalAnnotations, AnnotationSpec... extraAnnotations) { final ParameterSpec.Builder builder = ParameterSpec.builder(type, name).addAnnotations(externalAnnotations); for (AnnotationSpec annotation : extraAnnotations) { builder.addAnnotation(annotation); } return builder.build(); }
private static MethodSpec matcherComponentFieldSetterBuilder( SpecModel specModel, PropModel prop) { final String propMatcherName = getPropComponentMatcherName(prop); final String propName = prop.getName(); return getMethodSpecBuilder( specModel, ImmutableList.of( ParameterSpec.builder(getMatcherConditionTypeName(), "matcher").build()), CodeBlock.builder().addStatement("$L = matcher", propMatcherName).build(), propName) .build(); }
private static MethodSpec matcherFieldSetterBuilder(SpecModel specModel, PropModel prop) { final String propMatcherName = getPropMatcherName(prop); final String propName = prop.getName(); return getMethodSpecBuilder( specModel, ImmutableList.of(ParameterSpec.builder(getPropMatcherType(prop), "matcher").build()), CodeBlock.builder() .addStatement( "$L = ($L) matcher", propMatcherName, getPropMatcherType(prop).toString()) .build(), propName) .build(); }