Skip to content

Instantly share code, notes, and snippets.

@kiru
Created April 21, 2017 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiru/aede8ee04cab7528fe54ddadb606e3db to your computer and use it in GitHub Desktop.
Save kiru/aede8ee04cab7528fe54ddadb606e3db to your computer and use it in GitHub Desktop.
public class MyJavaGenerator extends JavaGenerator {
private TableDefinition table;
@Override
protected void generateRecord(TableDefinition table, JavaWriter out) {
this.table = table;
super.generateRecord(table, out);
}
@Override
protected void generateRecordGetter(TypedElementDefinition<?> column, int index, JavaWriter out) {
final String type = out.ref(getJavaType(column.getType()));
if (type.equals("MyUuid")) {
final String comment = StringUtils.defaultString(column.getComment());
final String getter = getStrategy().getJavaGetterName(column, GeneratorStrategy.Mode.RECORD);
final String name = column.getQualifiedOutputName();
String fullyQualifiedClassName = getStrategy().getFullJavaClassName(table, GeneratorStrategy.Mode.RECORD);
String typeWithGeneric = type + "<" + fullyQualifiedClassName + ">";
out.tab(1).javadoc("Getter for <code>%s</code>.%s", name, defaultIfBlank(" " + escapeEntities(comment), ""));
out.tab(1).overrideIf(generateInterfaces());
out.tab(1).println("public %s %s() {", typeWithGeneric, getter);
out.tab(2).println("return (%s) get(%s);", typeWithGeneric, index);
out.tab(1).println("}");
} else {
super.generateRecordGetter(column, index, out);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment