diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index ba70cc3550..d32f3705c1 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -1577,9 +1577,26 @@ public interface DataType extends Named { /** * Whether this data type is a UDT type. + *

+ * It is recommended to use {@link #isQualifiedRecord()} instead, which + * returns the same thing as {@link #isUDT()}, or {@link #isUDTRecord()} if + * only actual {@link UDT} types are requested. */ boolean isUDT(); + /** + * Whether this data type is a {@link UDTRecord} type. + */ + boolean isUDTRecord(); + + /** + * Whether this data type is a {@link QualifiedRecord} type. + *

+ * This includes {@link UDT#getDataType()} as well as + * {@link Table#getDataType()}. + */ + boolean isQualifiedRecord(); + /** * Whether this data type is a nested record type. *

diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index 2964829975..ffb34466b3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -138,6 +138,7 @@ import org.jooq.RowId; import org.jooq.SQLDialect; import org.jooq.Schema; import org.jooq.Table; +import org.jooq.UDTRecord; import org.jooq.XML; import org.jooq.impl.QOM.GenerationLocation; import org.jooq.impl.QOM.GenerationOption; @@ -1038,8 +1039,18 @@ implements return EmbeddableRecord.class.isAssignableFrom(tType0()); } + @Override + public final boolean isUDTRecord() { + return UDTRecord.class.isAssignableFrom(tType0()); + } + @Override public final boolean isUDT() { + return isQualifiedRecord(); + } + + @Override + public final boolean isQualifiedRecord() { return QualifiedRecord.class.isAssignableFrom(tType0()); }