From 2f28c8e304247f6c564d7061f8d56209919f2f5a Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 17 Apr 2020 17:57:43 +0200 Subject: [PATCH] [jOOQ/jOOQ#10085] Add DataType.isJSON() --- jOOQ/src/main/java/org/jooq/DataType.java | 10 ++++++++++ .../main/java/org/jooq/impl/DefaultDataType.java | 13 +++++++++++++ jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java | 2 -- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index b0bae447e0..0a738abb28 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -705,4 +705,14 @@ public interface DataType extends Serializable { * Whether this data type is an enum type. */ boolean isEnum(); + + /** + * Whether this data type is a JSON type. + */ + boolean isJSON(); + + /** + * Whether this data type is an XML type. + */ + boolean isXML(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index 0344b0bb6e..fdf045f84a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -74,12 +74,15 @@ import org.jooq.Converter; import org.jooq.DataType; import org.jooq.EnumType; import org.jooq.Field; +import org.jooq.JSON; +import org.jooq.JSONB; import org.jooq.Nullability; // ... import org.jooq.Result; import org.jooq.SQLDialect; import org.jooq.TableRecord; import org.jooq.UDTRecord; +import org.jooq.XML; import org.jooq.exception.MappingException; import org.jooq.exception.SQLDialectNotSupportedException; import org.jooq.tools.Convert; @@ -1090,6 +1093,16 @@ public class DefaultDataType implements DataType { return EnumType.class.isAssignableFrom(tType); } + @Override + public final boolean isJSON() { + return tType == JSON.class || tType == JSONB.class; + } + + @Override + public final boolean isXML() { + return tType == XML.class; + } + // ------------------------------------------------------------------------ // The Object API // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java index 1fc291761e..4feea4ae70 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java @@ -44,7 +44,6 @@ import static org.jooq.impl.Keywords.K_VALUE; import org.jooq.Context; import org.jooq.Field; -import org.jooq.JSON; import org.jooq.JSONEntry; @@ -93,7 +92,6 @@ final class JSONEntryImpl extends AbstractQueryPart implements JSONEntry { - case MARIADB: case MYSQL: case POSTGRES: