@Override public final int hashCode() { return Objects.hash(packageInfo(), simpleName()); }
public String identifier() { return simpleTypeInfo().simpleName(); }
public static ReferencedProperty of(ClassName tableClassName, SimpleTypeInfo columnAnnotation, ColumnOrmProperty referenced) { return new ReferencedProperty(tableClassName, columnAnnotation.simpleName(), referenced.name()); }
public static CsvRecordReturnType of(MethodInfo methodInfo, SimpleTypeInfo returnTypeInfo) { String simpleName = returnTypeInfo.simpleName(); String prefix = Code.lowerCaseFirstChar(simpleName); return new ObjectCsvRecordReturnType(prefix); }
@Override public String toString() { return enumType().simpleName() + "." + value(); }
@Override public CodeBlock get() { String tableVarName = tableClassName.simpleName(); return CodeBlock.builder() .addStatement("$T $L = $L.get()", tableClassName, tableVarName, tableClassName) .add("return $T.select(", Sql.class) .add(columnAnnotationClassStream() .map(col -> String.format("%s.%s()", tableVarName, col.simpleName())) .collect(Collectors.joining(", "))) .add(")\n") .add(" .from($L)\n", tableVarName) .build(); }
@Override public void acceptIsOrmInsertableHelper(IsOrmInsertableHelper helper) { super.acceptIsOrmInsertableHelper(helper); Iterator<SimpleTypeInfo> columnAnnotationClassIterator = columnAnnotationClassList().iterator(); Iterator<ColumnOrmProperty> referencedPropertyIterator = referencedPropertyList().iterator(); while (columnAnnotationClassIterator.hasNext()) { SimpleTypeInfo columnAnnotationClass = columnAnnotationClassIterator.next(); ColumnOrmProperty referencedProperty = referencedPropertyIterator.next(); helper.addExpressionPart("$T.get().$L($L.$L())", tableInfo().className(), columnAnnotationClass.simpleName(), property().name(), referencedProperty.property().accessorName()); } }