[jOOQ/jOOQ#17634] Compilation errors in generated POJO code when
generating <immutableInterfaces/> on a table accepting UDTs
This commit is contained in:
parent
a38317ab5e
commit
dc4a45e59f
@ -6754,11 +6754,12 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
final String columnSetter = getStrategy().getJavaSetterName(column, Mode.POJO);
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
final boolean isUDT = column.getType(resolver(out)).isUDT();
|
||||
final boolean isUDTArray = column.getType(resolver(out)).isUDTArray();
|
||||
final boolean isArray = column.getType(resolver(out)).isArray();
|
||||
final String name = column.getQualifiedOutputName();
|
||||
final boolean override = generateInterfaces() && !generateImmutableInterfaces() && !isUDT;
|
||||
|
||||
// We cannot have covariant setters for arrays because of type erasure
|
||||
if (!(generateInterfaces() && isUDTArray)) {
|
||||
if (!(generateInterfaces() && (isArray || isUDT))) {
|
||||
if (!printDeprecationIfUnknownType(out, columnTypeFull))
|
||||
out.javadoc("Setter for <code>%s</code>.[[before= ][%s]]", name, list(escapeEntities(comment(column))));
|
||||
|
||||
@ -6774,7 +6775,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
else {
|
||||
final String nullableAnnotation = nullableOrNonnullAnnotation(out, column);
|
||||
|
||||
out.overrideIf(generateInterfaces() && !generateImmutableInterfaces() && !isUDT);
|
||||
out.overrideIf(override);
|
||||
out.println("%s%s %s([[before=@][after= ][%s]]%s %s) {", visibility(), columnSetterReturnType, columnSetter, list(nullableAnnotation), varargsIfArray(columnType), columnMember);
|
||||
out.println("this.%s = %s;", columnMember, columnMember);
|
||||
|
||||
@ -6786,7 +6787,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
// [#3117] To avoid covariant setters on POJOs, we need to generate two setter overloads
|
||||
if (generateInterfaces() && (isUDT || isUDTArray)) {
|
||||
if (generateInterfaces() && (isUDT || isArray)) {
|
||||
final String columnTypeInterface = out.ref(getJavaType(column.getType(resolver(out, Mode.INTERFACE)), out, Mode.INTERFACE));
|
||||
|
||||
out.println();
|
||||
@ -6804,7 +6805,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println("}");
|
||||
}
|
||||
else {
|
||||
out.override();
|
||||
out.overrideIf(override);
|
||||
out.println("%s%s %s(%s %s) {", visibility(), columnSetterReturnType, columnSetter, varargsIfArray(columnTypeInterface), columnMember);
|
||||
out.println("this.%s = to%s(%s);", columnMember, toUC(columnMember), columnMember);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user