From e61c97aa7ab70e54b9226b05dd070f140c8a53a0 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 25 Nov 2011 17:03:35 +0000 Subject: [PATCH] Moved Convert class to org.jooq.tools --- jOOQ/src/main/java/org/jooq/Record.java | 2 +- jOOQ/src/main/java/org/jooq/Result.java | 2 +- jOOQ/src/main/java/org/jooq/Store.java | 2 +- .../java/org/jooq/impl/AbstractDataType.java | 1 + .../java/org/jooq/impl/AbstractField.java | 1 + .../java/org/jooq/impl/AbstractRecord.java | 1 + .../org/jooq/impl/AbstractResultQuery.java | 1 + .../java/org/jooq/impl/AbstractRoutine.java | 1 + .../java/org/jooq/impl/AbstractStore.java | 1 + .../java/org/jooq/impl/ArrayRecordImpl.java | 1 + .../java/org/jooq/impl/FieldTypeHelper.java | 1 + .../main/java/org/jooq/impl/ResultImpl.java | 1 + .../org/jooq/{impl => tools}/Convert.java | 75 ++++++++++++------- 13 files changed, 59 insertions(+), 31 deletions(-) rename jOOQ/src/main/java/org/jooq/{impl => tools}/Convert.java (85%) diff --git a/jOOQ/src/main/java/org/jooq/Record.java b/jOOQ/src/main/java/org/jooq/Record.java index 10a92a0590..475e058a97 100644 --- a/jOOQ/src/main/java/org/jooq/Record.java +++ b/jOOQ/src/main/java/org/jooq/Record.java @@ -47,7 +47,7 @@ import javax.persistence.Column; import org.jooq.exception.DataTypeException; import org.jooq.exception.MappingException; -import org.jooq.impl.Convert; +import org.jooq.tools.Convert; /** * A wrapper for database result records returned by diff --git a/jOOQ/src/main/java/org/jooq/Result.java b/jOOQ/src/main/java/org/jooq/Result.java index b244934f19..7425133d3c 100644 --- a/jOOQ/src/main/java/org/jooq/Result.java +++ b/jOOQ/src/main/java/org/jooq/Result.java @@ -44,7 +44,7 @@ import java.sql.Timestamp; import java.util.List; import org.jooq.exception.MappingException; -import org.jooq.impl.Convert; +import org.jooq.tools.Convert; import org.w3c.dom.Document; diff --git a/jOOQ/src/main/java/org/jooq/Store.java b/jOOQ/src/main/java/org/jooq/Store.java index 0476f5b8ae..778bbd89f0 100644 --- a/jOOQ/src/main/java/org/jooq/Store.java +++ b/jOOQ/src/main/java/org/jooq/Store.java @@ -42,7 +42,7 @@ import java.sql.Time; import java.sql.Timestamp; import org.jooq.exception.DataTypeException; -import org.jooq.impl.Convert; +import org.jooq.tools.Convert; /** * A common base type for {@link Record} and {@link ArrayRecord} providing diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index 2d01f9b696..31d9cbc6a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -56,6 +56,7 @@ import org.jooq.Result; import org.jooq.SQLDialect; import org.jooq.UDTRecord; import org.jooq.exception.SQLDialectNotSupportedException; +import org.jooq.tools.Convert; /** * A common base class for data types. diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index e682cf4630..c32708e1cb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -64,6 +64,7 @@ import org.jooq.RenderContext; import org.jooq.Select; import org.jooq.SortField; import org.jooq.SortOrder; +import org.jooq.tools.Convert; abstract class AbstractField extends AbstractNamedTypeProviderQueryPart implements Field { diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 1ad71c47fd..bd1305b78e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -64,6 +64,7 @@ import org.jooq.Record; import org.jooq.Table; import org.jooq.TableRecord; import org.jooq.exception.MappingException; +import org.jooq.tools.Convert; /** * @author Lukas Eder diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java index 753c4dc271..8ae45f02bb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java @@ -66,6 +66,7 @@ import org.jooq.Table; import org.jooq.TableRecord; import org.jooq.exception.DataAccessException; import org.jooq.exception.InvalidResultException; +import org.jooq.tools.Convert; /** * A query that returns a {@link Result} diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index 9ff1a29dbe..1186b3fc98 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -64,6 +64,7 @@ import org.jooq.SQLDialect; import org.jooq.Schema; import org.jooq.UDTField; import org.jooq.UDTRecord; +import org.jooq.tools.Convert; import org.jooq.tools.JooqLogger; import org.jooq.tools.StopWatch; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java index c397bc675a..0332e42422 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java @@ -44,6 +44,7 @@ import java.sql.Timestamp; import org.jooq.AttachableInternal; import org.jooq.Configuration; import org.jooq.Store; +import org.jooq.tools.Convert; /** * @author Lukas Eder diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java index 9e1ea441f9..bf5e4064ff 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java @@ -49,6 +49,7 @@ import org.jooq.Configuration; import org.jooq.DataType; import org.jooq.SQLDialect; import org.jooq.exception.SQLDialectNotSupportedException; +import org.jooq.tools.Convert; import org.jooq.util.oracle.OracleUtils; /** diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java index bb9e5a6a1c..4b691d7e3a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java @@ -72,6 +72,7 @@ import org.jooq.Result; import org.jooq.SQLDialect; import org.jooq.UDTRecord; import org.jooq.exception.SQLDialectNotSupportedException; +import org.jooq.tools.Convert; import org.jooq.tools.JooqLogger; import org.jooq.util.ase.ASEDataType; import org.jooq.util.db2.DB2DataType; diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java index ab089f24c1..d4f229b4bb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java @@ -73,6 +73,7 @@ import org.jooq.Result; import org.jooq.Store; import org.jooq.Table; import org.jooq.TableRecord; +import org.jooq.tools.Convert; import org.jooq.tools.StringUtils; import org.jooq.tools.json.JSONObject; diff --git a/jOOQ/src/main/java/org/jooq/impl/Convert.java b/jOOQ/src/main/java/org/jooq/tools/Convert.java similarity index 85% rename from jOOQ/src/main/java/org/jooq/impl/Convert.java rename to jOOQ/src/main/java/org/jooq/tools/Convert.java index 0331e9c7d7..6b86eca79d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Convert.java +++ b/jOOQ/src/main/java/org/jooq/tools/Convert.java @@ -33,7 +33,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package org.jooq.impl; +package org.jooq.tools; import static org.joou.Unsigned.ubyte; import static org.joou.Unsigned.uint; @@ -49,6 +49,7 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -67,40 +68,58 @@ import org.joou.UShort; */ public final class Convert { - static final Set TRUE_VALUES; - static final Set FALSE_VALUES; + public static final Set TRUE_VALUES; + public static final Set FALSE_VALUES; static { - TRUE_VALUES = new HashSet(); - FALSE_VALUES = new HashSet(); + Set trueValues = new HashSet(); + Set falseValues = new HashSet(); - TRUE_VALUES.add("1"); - TRUE_VALUES.add("y"); - TRUE_VALUES.add("Y"); - TRUE_VALUES.add("yes"); - TRUE_VALUES.add("YES"); - TRUE_VALUES.add("true"); - TRUE_VALUES.add("TRUE"); - TRUE_VALUES.add("on"); - TRUE_VALUES.add("ON"); - TRUE_VALUES.add("enabled"); - TRUE_VALUES.add("ENABLED"); + trueValues.add("1"); + trueValues.add("y"); + trueValues.add("Y"); + trueValues.add("yes"); + trueValues.add("YES"); + trueValues.add("true"); + trueValues.add("TRUE"); + trueValues.add("on"); + trueValues.add("ON"); + trueValues.add("enabled"); + trueValues.add("ENABLED"); - FALSE_VALUES.add("0"); - FALSE_VALUES.add("n"); - FALSE_VALUES.add("N"); - FALSE_VALUES.add("no"); - FALSE_VALUES.add("NO"); - FALSE_VALUES.add("false"); - FALSE_VALUES.add("FALSE"); - FALSE_VALUES.add("off"); - FALSE_VALUES.add("OFF"); - FALSE_VALUES.add("disabled"); - FALSE_VALUES.add("DISABLED"); + falseValues.add("0"); + falseValues.add("n"); + falseValues.add("N"); + falseValues.add("no"); + falseValues.add("NO"); + falseValues.add("false"); + falseValues.add("FALSE"); + falseValues.add("off"); + falseValues.add("OFF"); + falseValues.add("disabled"); + falseValues.add("DISABLED"); + + TRUE_VALUES = Collections.unmodifiableSet(trueValues); + FALSE_VALUES = Collections.unmodifiableSet(falseValues); } + /** + * Convert an array into another one by these rules + *

+ *

    + *
  • If toClass is not an array class, then make it an array + * class first
  • + *
  • If toClass is an array class, then create an instance + * from it, and convert all elements in the from array one by + * one, using {@link #convert(Object, Class)}
  • + *
+ * + * @param from The array to convert + * @param toClass The target array type + * @return A converted array + */ @SuppressWarnings("unchecked") - static Object[] convertArray(Object[] from, Class toClass) { + public static Object[] convertArray(Object[] from, Class toClass) { if (from == null) { return null; }