[#5627] Added runtime information about a UDT being "SQL usable"
This commit is contained in:
parent
cc86c920d4
commit
e9cd04e2e7
@ -1527,7 +1527,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
if (scala) {
|
||||
out.println("class %s extends %s[%s](\"%s\", null)[[before= with ][separator= with ][%s]] {", className, UDTImpl.class, recordType, udt.getOutputName(), interfaces);
|
||||
out.println("class %s extends %s[%s](\"%s\", null, %s)[[before= with ][separator= with ][%s]] {", className, UDTImpl.class, recordType, udt.getOutputName(), udt.getPackage() == null, interfaces);
|
||||
}
|
||||
else {
|
||||
out.println("public class %s extends %s<%s>[[before= implements ][%s]] {", className, UDTImpl.class, recordType, interfaces);
|
||||
@ -1589,7 +1589,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
else {
|
||||
out.tab(1).javadoc(NO_FURTHER_INSTANCES_ALLOWED);
|
||||
out.tab(1).println("private %s() {", className);
|
||||
out.tab(2).println("super(\"%s\", null);", udt.getOutputName());
|
||||
out.tab(2).println("super(\"%s\", null, %s);", udt.getOutputName(), udt.getPackage() == null);
|
||||
out.tab(1).println("}");
|
||||
}
|
||||
|
||||
|
||||
@ -160,7 +160,12 @@ public interface UDT<R extends UDTRecord<R>> extends QueryPart {
|
||||
R newRecord();
|
||||
|
||||
/**
|
||||
* The UDT's data type as known to the database
|
||||
* The UDT's data type as known to the database.
|
||||
*/
|
||||
DataType<R> getDataType();
|
||||
|
||||
/**
|
||||
* Whether this data type can be used from SQL statements.
|
||||
*/
|
||||
boolean isSQLUsable();
|
||||
}
|
||||
|
||||
@ -71,12 +71,18 @@ public class UDTImpl<R extends UDTRecord<R>> extends AbstractQueryPart implement
|
||||
private final Schema schema;
|
||||
private final String name;
|
||||
private final Fields<R> fields;
|
||||
private final boolean isSQLUsable;
|
||||
private transient DataType<R> type;
|
||||
|
||||
public UDTImpl(String name, Schema schema) {
|
||||
this(name, schema, true);
|
||||
}
|
||||
|
||||
protected UDTImpl(String name, Schema schema, boolean isSQLUsable) {
|
||||
this.fields = new Fields<R>();
|
||||
this.name = name;
|
||||
this.schema = schema;
|
||||
this.isSQLUsable = isSQLUsable;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -165,6 +171,11 @@ public class UDTImpl<R extends UDTRecord<R>> extends AbstractQueryPart implement
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isSQLUsable() {
|
||||
return isSQLUsable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final R newRecord() {
|
||||
return DSL.using(new DefaultConfiguration()).newRecord(this);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user