public static MethodSpec.Builder overriding(ExecutableElement method) { return MethodSpec.methodBuilder(method.getSimpleName().toString()) .addAnnotation(Override.class) .addModifiers(method.getModifiers().stream().filter(modifier -> modifier != Modifier.ABSTRACT).collect(Collectors.toList())) .returns(TypeName.get(method.getReturnType())) .varargs(method.isVarArgs()) .addExceptions(method.getThrownTypes().stream().map(TypeName::get).collect(Collectors.toList())) .addTypeVariables(method.getTypeParameters().stream().map(TypeVariableName::get).collect(Collectors.toList())) .addParameters(method.getParameters().stream().map(element -> ParameterSpec.get(element).toBuilder() .addAnnotations(element.getAnnotationMirrors().stream().map(AnnotationSpec::get).collect(Collectors.toList())).build()).collect(Collectors.toList())); }
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); }
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()); } }
.addParameter( ParameterSpec.builder(foreignKey.getType(), paramName) .addAnnotations(foreignKey.nullabilityAnnotations()) .build()) .returns(targetClassName) && SqlTypes.isComparable(column.getStorageType())) { ParameterSpec paramSpecA = ParameterSpec.builder(type, column.name + "A") .addAnnotations(paramAnnotations) .build(); .addAnnotations(paramAnnotations) .build();
.addParameter( ParameterSpec.builder(column.getType(), paramName) .addAnnotations(column.nullabilityAnnotations()) .build() ); .addParameter( ParameterSpec.builder(r.getModelType(), column.name) .addAnnotations(column.nullabilityAnnotations()) .build()
@Override public ParameterSpec getAsParameter(Modifier... modifiers) { return super.getAsParameter(modifiers).toBuilder() .addAnnotations(getSupportAnnotations()) .build(); }
private ParameterSpec renameParameter(ParameterSpec parameter, String newName) { return ParameterSpec.builder(parameter.type, newName) .addAnnotations(parameter.annotations) .addModifiers(parameter.modifiers) .build(); }
ParameterSpec buildStringParameterSpec(String name) { return ParameterSpec.builder(Types.String, name) .addAnnotations(Collections.singletonList(Annotations.nonNull())) .build(); }
ParameterSpec buildParameterSpec(ColumnDefinition column) { AssociationDefinition r = column.getAssociation(); boolean isAssociation = r != null; TypeName type = isAssociation ? r.getModelType() : column.getType(); List<AnnotationSpec> paramAnnotations = column.type.isPrimitive() ? Collections.emptyList() : Collections.singletonList(Annotations.nonNull()); return ParameterSpec.builder(type, column.name) .addAnnotations(paramAnnotations) .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( 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 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(); }