From 2da4878ff5d9835281c608933e49025ab89cccd3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sun, 26 Feb 2012 11:59:00 +0000 Subject: [PATCH] [#1184] Add DataType.isArray() --- .../src/org/jooq/test/_/testcases/RoutineAndUDTTests.java | 8 ++++++++ jOOQ/src/main/java/org/jooq/DataType.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/RoutineAndUDTTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/RoutineAndUDTTests.java index 083b774414..c990442e4f 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/RoutineAndUDTTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/RoutineAndUDTTests.java @@ -881,6 +881,10 @@ extends BaseTest result; + // [#1184] Test data type + assertTrue(TArrays_NUMBER_R().getDataType().isArray()); + assertFalse(TBook_ID().getDataType().isArray()); + // An empty array // -------------- ArrayRecord array = newNUMBER_R(); @@ -990,6 +994,10 @@ extends BaseTest table; Integer[] array; + // [#1184] Test data type + assertTrue(TArrays_NUMBER().getDataType().isArray()); + assertFalse(TBook_ID().getDataType().isArray()); + // Cross join the array table with the unnested string array value // --------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index 272acf4a35..5645230ea2 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -210,4 +210,9 @@ public interface DataType extends Serializable { * */ boolean isBinary(); + + /** + * Whether this data type is an array type. + */ + boolean isArray(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index f3bc537a34..0983a8c9b4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -454,6 +454,12 @@ public abstract class AbstractDataType implements DataType { return type == byte[].class; } + @Override + public final boolean isArray() { + return ArrayRecord.class.isAssignableFrom(type) + || (!isBinary() && type.isArray()); + } + // ------------------------------------------------------------------------ // The Object API // ------------------------------------------------------------------------