[#3081] Let generated POJOs reference generated UDT POJOs instead of UDT Records
This commit is contained in:
parent
3e52522889
commit
2b9acf7366
@ -768,7 +768,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
final String setterReturnType = fluentSetters() ? className : "void";
|
||||
final String setter = getStrategy().getJavaSetterName(column, Mode.DEFAULT);
|
||||
final String getter = getStrategy().getJavaGetterName(column, Mode.DEFAULT);
|
||||
final String type = getJavaType((column).getType());
|
||||
final String type = getJavaType((column).getType(), Mode.INTERFACE);
|
||||
final String name = column.getQualifiedOutputName();
|
||||
|
||||
if (!generateImmutablePojos()) {
|
||||
@ -1582,13 +1582,13 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
|
||||
int maxLength = 0;
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
maxLength = Math.max(maxLength, getJavaType(column.getType()).length());
|
||||
maxLength = Math.max(maxLength, getJavaType(column.getType(), Mode.POJO).length());
|
||||
}
|
||||
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
out.tab(1).println("private %s%s %s;",
|
||||
generateImmutablePojos() ? "final " : "",
|
||||
StringUtils.rightPad(getJavaType(column.getType()), maxLength),
|
||||
StringUtils.rightPad(getJavaType(column.getType(), Mode.POJO), maxLength),
|
||||
getStrategy().getJavaMemberName(column, Mode.POJO));
|
||||
}
|
||||
|
||||
@ -1615,7 +1615,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println(separator1);
|
||||
|
||||
out.tab(2).print("%s %s",
|
||||
StringUtils.rightPad(getJavaType(column.getType()), maxLength),
|
||||
StringUtils.rightPad(getJavaType(column.getType(), Mode.POJO), maxLength),
|
||||
getStrategy().getJavaMemberName(column, Mode.POJO));
|
||||
separator1 = ",";
|
||||
}
|
||||
@ -1633,7 +1633,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnType = getJavaType(column.getType());
|
||||
final String columnType = getJavaType(column.getType(), Mode.POJO);
|
||||
final String columnSetterReturnType = fluentSetters() ? className : "void";
|
||||
final String columnSetter = getStrategy().getJavaSetterName(column, Mode.POJO);
|
||||
final String columnGetter = getStrategy().getJavaGetterName(column, Mode.POJO);
|
||||
@ -2738,6 +2738,10 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
protected String getJavaType(DataTypeDefinition type) {
|
||||
return getJavaType(type, Mode.RECORD);
|
||||
}
|
||||
|
||||
protected String getJavaType(DataTypeDefinition type, Mode udtMode) {
|
||||
return getType(
|
||||
type.getDatabase(),
|
||||
type.getSchema(),
|
||||
@ -2745,10 +2749,15 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
type.getPrecision(),
|
||||
type.getScale(),
|
||||
type.getUserType(),
|
||||
Object.class.getName());
|
||||
Object.class.getName(),
|
||||
udtMode);
|
||||
}
|
||||
|
||||
protected String getType(Database db, SchemaDefinition schema, String t, int p, int s, String u, String defaultType) {
|
||||
return getType(db, schema, t, p, s, u, defaultType, Mode.RECORD);
|
||||
}
|
||||
|
||||
protected String getType(Database db, SchemaDefinition schema, String t, int p, int s, String u, String defaultType, Mode udtMode) {
|
||||
String type = defaultType;
|
||||
|
||||
// Array types
|
||||
@ -2769,7 +2778,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
|
||||
// Check for UDTs
|
||||
else if (db.getUDT(schema, u) != null) {
|
||||
type = getStrategy().getFullJavaClassName(db.getUDT(schema, u), Mode.RECORD);
|
||||
type = getStrategy().getFullJavaClassName(db.getUDT(schema, u), udtMode);
|
||||
}
|
||||
|
||||
// Check for custom types
|
||||
|
||||
@ -1500,8 +1500,22 @@ xxxxxx xxxxx xxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
|
||||
xxxxx
|
||||
xxxxxx xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxx x
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx x
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
|
||||
xxxxx
|
||||
|
||||
Loading…
Reference in New Issue
Block a user