[#7148] Fixed Scala implementation
This commit is contained in:
parent
85c2ea6ed8
commit
e3dfbc0a9f
@ -3647,8 +3647,27 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
printClassAnnotations(out, schema);
|
||||
|
||||
if (scala) {
|
||||
out.println("class %s(alias : %s, aliased : %s[%s], parameters : %s[ %s[_] ]) extends %s[%s](alias, %s, aliased, parameters, %s.comment(\"%s\"))[[before= with ][separator= with ][%s]] {",
|
||||
className, Name.class, Table.class, recordType, out.ref("scala.Array"), Field.class, TableImpl.class, recordType, schemaId, DSL.class, escapeString(comment), interfaces);
|
||||
out.println("class %s(", className);
|
||||
out.tab(1).println("alias : %s,", Name.class);
|
||||
out.tab(1).println("child : %s[_ <: %s],", Table.class, Record.class);
|
||||
out.tab(1).println("path : %s[_ <: %s, %s],", ForeignKey.class, Record.class, recordType);
|
||||
out.tab(1).println("aliased : %s[%s],", Table.class, recordType);
|
||||
out.tab(1).println("parameters : %s[ %s[_] ]", out.ref("scala.Array"), Field.class);
|
||||
out.println(")");
|
||||
out.println("extends %s[%s](", TableImpl.class, recordType);
|
||||
out.tab(1).println("alias,");
|
||||
out.tab(1).println("%s,", schemaId);
|
||||
out.tab(1).println("child,");
|
||||
out.tab(1).println("path,");
|
||||
out.tab(1).println("aliased,");
|
||||
out.tab(1).println("parameters,");
|
||||
out.tab(1).println("%s.comment(\"%s\")", DSL.class, escapeString(comment));
|
||||
out.println(")");
|
||||
|
||||
if (!interfaces.isEmpty())
|
||||
out.println("[[before= with ][separator= with ][%s]]", interfaces);
|
||||
|
||||
out.println("{");
|
||||
}
|
||||
else {
|
||||
out.println("public class %s extends %s<%s>[[before= implements ][%s]] {",
|
||||
@ -3688,7 +3707,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
if (scala) {
|
||||
out.tab(1).javadoc("Create a <code>%s</code> table reference", table.getQualifiedOutputName());
|
||||
out.tab(1).println("def this() = {");
|
||||
out.tab(2).println("this(%s.name(\"%s\"), null, null)", DSL.class, table.getOutputName());
|
||||
out.tab(2).println("this(%s.name(\"%s\"), null, null, null, null)", DSL.class, table.getOutputName());
|
||||
out.tab(1).println("}");
|
||||
}
|
||||
else {
|
||||
@ -3711,12 +3730,12 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
if (scala) {
|
||||
out.tab(1).javadoc("Create an aliased <code>%s</code> table reference", table.getQualifiedOutputName());
|
||||
out.tab(1).println("def this(alias : %s) = {", String.class);
|
||||
out.tab(2).println("this(%s.name(alias), %s, null)", DSL.class, tableId);
|
||||
out.tab(2).println("this(%s.name(alias), null, null, %s, null)", DSL.class, tableId);
|
||||
out.tab(1).println("}");
|
||||
|
||||
out.tab(1).javadoc("Create an aliased <code>%s</code> table reference", table.getQualifiedOutputName());
|
||||
out.tab(1).println("def this(alias : %s) = {", Name.class);
|
||||
out.tab(2).println("this(alias, %s, null)", tableId);
|
||||
out.tab(2).println("this(alias, null, null, %s, null)", tableId);
|
||||
out.tab(1).println("}");
|
||||
}
|
||||
|
||||
@ -3741,9 +3760,9 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
if (scala) {
|
||||
out.tab(1).println("private def this(alias : %s, aliased : %s[%s]) = {", Name.class, Table.class, recordType);
|
||||
if (table.isTableValuedFunction())
|
||||
out.tab(2).println("this(alias, aliased, new %s[ %s[_] ](%s))", out.ref("scala.Array"), Field.class, table.getParameters().size());
|
||||
out.tab(2).println("this(alias, null, null, aliased, new %s[ %s[_] ](%s))", out.ref("scala.Array"), Field.class, table.getParameters().size());
|
||||
else
|
||||
out.tab(2).println("this(alias, aliased, null)");
|
||||
out.tab(2).println("this(alias, null, null, aliased, null)");
|
||||
|
||||
out.tab(1).println("}");
|
||||
}
|
||||
@ -3777,8 +3796,8 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.println();
|
||||
|
||||
if (scala) {
|
||||
out.tab(1).println("def this(child : %s[_], key : %s[_, %s]) = {", Table.class, ForeignKey.class, recordType);
|
||||
out.tab(2).println("this(child, key, %s)", tableId);
|
||||
out.tab(1).println("def this(child : %s[_ <: %s], key : %s[_ <: %s, %s]) = {", Table.class, Record.class, ForeignKey.class, Record.class, recordType);
|
||||
out.tab(2).println("this(TableImpl.pathAlias(child, key), child, key, %s, null)", tableId);
|
||||
out.tab(1).println("}");
|
||||
}
|
||||
else {
|
||||
|
||||
@ -155,11 +155,11 @@ public class TableImpl<R extends Record> extends AbstractTable<R> {
|
||||
this(name, schema, null, null, aliased, parameters, comment);
|
||||
}
|
||||
|
||||
public <O extends Record> TableImpl(Table<O> child, ForeignKey<O, R> path, Table<R> parent) {
|
||||
public TableImpl(Table<?> child, ForeignKey<?, R> path, Table<R> parent) {
|
||||
this(pathAlias(child, path), null, child, path, parent, null, DSL.comment(parent.getComment()));
|
||||
}
|
||||
|
||||
private static final Name pathAlias(Table<?> child, ForeignKey<?, ?> path) {
|
||||
protected static final Name pathAlias(Table<?> child, ForeignKey<?, ?> path) {
|
||||
Name name = DSL.name(path.getName());
|
||||
|
||||
if (child instanceof TableImpl) {
|
||||
@ -174,7 +174,7 @@ public class TableImpl<R extends Record> extends AbstractTable<R> {
|
||||
return DSL.name("alias_" + Tools.hash(name));
|
||||
}
|
||||
|
||||
public <O extends Record> TableImpl(Name name, Schema schema, Table<O> child, ForeignKey<O, R> path, Table<R> aliased, Field<?>[] parameters, Comment comment) {
|
||||
public TableImpl(Name name, Schema schema, Table<?> child, ForeignKey<?, R> path, Table<R> aliased, Field<?>[] parameters, Comment comment) {
|
||||
super(name, schema, comment);
|
||||
|
||||
this.fields = new Fields<R>();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user