@Override public String toString() { return simpleTypeInfo().getDeclaredName() + " " + name(); }
public static Optional<SetterParameter> of(OrmPojoInfo pojoInfo, ParameterInfo parameterInfo) { List<AnnotationInfo> annotationInfoList = parameterInfo.annotationInfoList(); if (annotationInfoList.isEmpty()) { parameterInfo.compilationError("@SqlSetter parameter must have either a column or a foreign key annotation."); return Optional.empty(); } AnnotationInfo annotationInfo = parameterInfo.annotationInfoAnnotatedWith(ColumnAnnotation.class) .orElseGet(() -> parameterInfo.annotationInfoAnnotatedWith(ForeignKeyAnnotation.class).orElse(null)); if (annotationInfo == null) { parameterInfo.compilationError("@SqlSetter parameter must have either a column or a foreign key annotation."); return Optional.empty(); } return pojoInfo.propertyAnnotatedWith(annotationInfo) .map(property -> SetterParameter.of(parameterInfo, property)); }
private List<CodeBlock> parameterInfoToCodeBlock(int index, ParameterInfo parameterInfo) { FieldInfo fieldInfo = parameterInfo.toFieldInfo(); List<CodeBlock> code = new ArrayList<>(); Optional<CodeBlock> maybeNullCheck = fieldInfo.writeNullCheck(); if (maybeNullCheck.isPresent()) { code.add(maybeNullCheck.get()); } code.add(assignToField(index, parameterInfo)); return code; }
void addTypeNameAndName(List<Object> parameterList) { TypeName typeName = simpleTypeInfo().typeName(); parameterList.add(typeName); addName(parameterList); }
void addName(List<Object> parameterList) { parameterList.add(name()); }
@Override public Equality isEqualTo(Object that) { return Tester.of(ParameterInfo.class) .add("index", o -> o.index()) .add("annotationInfoList", o -> o.annotationInfoList()) .add("simpleTypeInfo", o -> o.simpleTypeInfo()) .add("name", o -> o.name()) .test(this, that); }
public static boolean isOrm(ParameterInfo parameter) { SimpleTypeInfo simpleTypeInfo = parameter.simpleTypeInfo(); return simpleTypeInfo.isSubType(Orm.class); }
public Stream<FieldSpec> fieldStream(int index) { Stream<FieldSpec> parameter = constructorInfo .parameterInfoStream() .map(input -> input.fieldWriter() .modifiers(Modifier.PRIVATE) .prefixNameWith(constructorPrefix(index)) .write()); return Stream.concat(parameter, marker(index)); }
public T setParameterName() { List<ParameterInfo> parameterInfoList = parameterInfoList(); for (ParameterInfo parameterInfo : parameterInfoList) { parameterInfo.addName(parameterList); } return self(); }
private String parameterName() { return methodInfo.parameterInfoStream() .findFirst() .get() .name(); }
public boolean isInfoOf(Class<?> type) { return simpleTypeInfo().isInfoOf(type); }
public Stream<FieldSpec> fieldStream(int index) { Stream<FieldSpec> parameter = constructorInfo .parameterInfoStream() .map(input -> input.fieldWriter() .modifiers(Modifier.PRIVATE) .prefixNameWith(constructorPrefix(index)) .write()); return Stream.concat(parameter, marker(index)); }
public FieldInfo toFieldInfo() { return CoreFieldInfo.of(simpleTypeInfo(), name()); }
private static SetterParameter of(ParameterInfo parameterInfo, OrmProperty property) { return new SetterParameter(parameterInfo.name(), property); }
void signature(StringBuilder sig) { sig.append(simpleTypeInfo().qualifiedName()); }
private List<CodeBlock> parameterInfoToCodeBlock(int index, ParameterInfo parameterInfo) { FieldInfo fieldInfo = parameterInfo.toFieldInfo(); List<CodeBlock> code = new ArrayList<>(); Optional<CodeBlock> maybeNullCheck = fieldInfo.writeNullCheck(); if (maybeNullCheck.isPresent()) { code.add(maybeNullCheck.get()); } code.add(assignToField(index, parameterInfo)); return code; }
public static ConstructorOrmInject of(ParameterInfo parameterInfo) { SimpleTypeInfo simpleTypeInfo = parameterInfo.simpleTypeInfo(); return new ConstructorOrmInject( simpleTypeInfo.typeName(), parameterInfo.name()); }
private CodeBlock buildReturnStatement(Naming naming, int index) { String parameterString = constructorInfo.parameterInfoList().stream() .map(parameterInfo -> constructorPrefix(index, parameterInfo.name())) .collect(Collectors.joining(", ")); String customString = customFieldList.stream() .map(BuilderCustomField::name) .collect(Collectors.joining(", ")); return CodeBlock.builder() .addStatement("return new $T($L$Lthis)", naming.pojoUnboundedTypeName(), customFieldList.isEmpty() ? customString : customString + ", ", parameterString.isEmpty() ? parameterString : parameterString + ", ") .build(); }
public ParameterSpec parameterSpec() { TypeName type = simpleTypeInfo().typeName(); return ParameterSpec.builder(type, name()) .build(); }