[jOOQ/jOOQ#10787] KotlinGenerator and ScalaGenerator don't produce correct POJO.toString(), equals(), hashCode() methods for array types
This commit is contained in:
parent
1acc6b15c2
commit
d39059919b
@ -4680,8 +4680,8 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println("return false");
|
||||
out.println("}");
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
out.println("else if (!%s.equals(%s, other.%s))", Arrays.class, columnMember, columnMember);
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("else if (!(%s sameElements other.%s))", columnMember, columnMember);
|
||||
else
|
||||
out.println("else if (!%s.equals(other.%s))", columnMember, columnMember);
|
||||
|
||||
@ -4710,7 +4710,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println("return false");
|
||||
out.println("}");
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("else if (!%s.equals(%s, other.%s))", Arrays.class, columnMember, columnMember);
|
||||
else
|
||||
out.println("else if (%s != other.%s)", columnMember, columnMember);
|
||||
@ -4741,7 +4741,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println("return false;");
|
||||
out.println("}");
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("else if (!%s.equals(%s, other.%s))", Arrays.class, columnMember, columnMember);
|
||||
else
|
||||
out.println("else if (!%s.equals(other.%s))", columnMember, columnMember);
|
||||
@ -4763,10 +4763,10 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
out.println("result = prime * result + (if (this.%s == null) 0 else %s.hashCode(this.%s))", columnMember, Arrays.class, columnMember);
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("result = prime * result + (if (this.%s == null) 0 else %s.toSeq.hashCode)", columnMember, columnMember);
|
||||
else
|
||||
out.println("result = prime * result + (if (this.%s == null) 0 else this.%s.hashCode())", columnMember, columnMember);
|
||||
out.println("result = prime * result + (if (this.%s == null) 0 else this.%s.hashCode)", columnMember, columnMember);
|
||||
}
|
||||
|
||||
out.println("return result");
|
||||
@ -4780,7 +4780,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("result = prime * result + (if (this.%s === null) 0 else %s.hashCode(this.%s))", columnMember, Arrays.class, columnMember);
|
||||
else
|
||||
out.println("result = prime * result + (if (this.%s === null) 0 else this.%s.hashCode())", columnMember, columnMember);
|
||||
@ -4798,7 +4798,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
|
||||
if (getJavaType(column.getType(resolver(out)), out).endsWith("[]"))
|
||||
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
|
||||
out.println("result = prime * result + ((this.%s == null) ? 0 : %s.hashCode(this.%s));", columnMember, Arrays.class, columnMember);
|
||||
else
|
||||
out.println("result = prime * result + ((this.%s == null) ? 0 : this.%s.hashCode());", columnMember, columnMember);
|
||||
@ -4855,7 +4855,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
final String columnType = getJavaType(column.getType(resolver(out)), out);
|
||||
final boolean array = columnType.endsWith("[]");
|
||||
final boolean array = isArrayType(columnType);
|
||||
|
||||
if (array && columnType.equals("kotlin.ByteArray"))
|
||||
out.println("sb%s.append(\"[binary...]\")", separator);
|
||||
@ -4882,7 +4882,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
|
||||
final String columnType = getJavaType(column.getType(resolver(out)), out);
|
||||
final boolean array = columnType.endsWith("[]");
|
||||
final boolean array = isArrayType(columnType);
|
||||
|
||||
if (array && columnType.equals("byte[]"))
|
||||
out.println("sb%s.append(\"[binary...]\");", separator);
|
||||
@ -8067,6 +8067,10 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
return new Resolver(out, mode);
|
||||
}
|
||||
|
||||
protected boolean isArrayType(String javaType) {
|
||||
return javaType.endsWith("[]") || javaType.startsWith("kotlin.Array") || javaType.startsWith("scala.Array");
|
||||
}
|
||||
|
||||
protected String getJavaType(DataTypeDefinition type, JavaWriter out) {
|
||||
return getJavaType(type, out, Mode.RECORD);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user