From 9704a1c12c9925991562a8b5b098a8a108efaa90 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 23 Nov 2020 15:45:18 +0100 Subject: [PATCH] [jOOQ/jOOQ#11009] Refactor some Tools methods. Java 6 fix. --- .../java/org/jooq/impl/AbstractField.java | 6 +- .../org/jooq/impl/EmbeddableRecordImpl.java | 5 +- .../main/java/org/jooq/impl/RecordImplN.java | 2 +- .../org/jooq/impl/RowBetweenCondition.java | 2 +- .../java/org/jooq/impl/TableRecordImpl.java | 4 +- jOOQ/src/main/java/org/jooq/impl/Tools.java | 86 ++++--------------- .../java/org/jooq/impl/UDTRecordImpl.java | 4 +- 7 files changed, 30 insertions(+), 79 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 5329346989..b6932dbee2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -273,7 +273,7 @@ abstract class AbstractField extends AbstractTypedNamed implements Field sortAsc(Collection sortList) { - return Tools.isEmpty(sortList) ? sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).asc(); + return Tools.isEmpty(sortList) ? this.sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).asc(); } @Override @@ -284,7 +284,7 @@ abstract class AbstractField extends AbstractTypedNamed implements Field sortDesc(Collection sortList) { - return Tools.isEmpty(sortList) ? sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).desc(); + return Tools.isEmpty(sortList) ? this.sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).desc(); } @Override @@ -295,7 +295,7 @@ abstract class AbstractField extends AbstractTypedNamed implements Field SortField sort(Map sortMap) { - return sortMap == null || sortMap.isEmpty() ? sortConstant() : DSL.case_(this).mapValues(sortMap).asc(); + return sortMap == null || sortMap.isEmpty() ? this.sortConstant() : DSL.case_(this).mapValues(sortMap).asc(); } @SuppressWarnings({ "unchecked", "rawtypes" }) diff --git a/jOOQ/src/main/java/org/jooq/impl/EmbeddableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/EmbeddableRecordImpl.java index a105b8286f..0ff95214b7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/EmbeddableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/EmbeddableRecordImpl.java @@ -37,6 +37,9 @@ */ package org.jooq.impl; +import static org.jooq.impl.Tools.fieldsArray; +import static org.jooq.impl.Tools.row0; + import org.jooq.Converter; import org.jooq.EmbeddableRecord; import org.jooq.Field; @@ -91,7 +94,7 @@ public class EmbeddableRecordImpl> extends Abstrac */ @Override public Row valuesRow() { - return Tools.row0(Tools.fields(intoArray(), fields.fields.fields())); + return row0(fieldsArray(intoArray(), fields.fields.fields())); } @SuppressWarnings("unchecked") diff --git a/jOOQ/src/main/java/org/jooq/impl/RecordImplN.java b/jOOQ/src/main/java/org/jooq/impl/RecordImplN.java index b43a1390c4..e6b8568f0f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RecordImplN.java +++ b/jOOQ/src/main/java/org/jooq/impl/RecordImplN.java @@ -86,6 +86,6 @@ class RecordImplN extends AbstractRecord implements InternalRecord { @Override public final RowImplN valuesRow() { - return new RowImplN(Tools.fields(values, fields.fields.fields)); + return new RowImplN(Tools.fieldsArray(values, fields.fields.fields)); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java index bd051edb48..f6710d6839 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowBetweenCondition.java @@ -697,7 +697,7 @@ implements @Override public final Condition and(Record record) { - return and(new RowImplN(Tools.fields(record.intoArray(), record.fields()))); + return and(new RowImplN(Tools.fieldsArray(record.intoArray(), record.fields()))); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java index d7360765dd..3ac88bfded 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java @@ -51,7 +51,9 @@ import static org.jooq.conf.SettingsTools.updatablePrimaryKeys; import static org.jooq.impl.RecordDelegate.delegate; import static org.jooq.impl.RecordDelegate.RecordLifecycleType.INSERT; import static org.jooq.impl.Tools.EMPTY_FIELD; +import static org.jooq.impl.Tools.fieldsArray; import static org.jooq.impl.Tools.indexOrFail; +import static org.jooq.impl.Tools.row0; import static org.jooq.impl.Tools.settings; import static org.jooq.impl.Tools.BooleanDataKey.DATA_OMIT_RETURNING_CLAUSE; @@ -136,7 +138,7 @@ public class TableRecordImpl> extends AbstractRecord im */ @Override public Row valuesRow() { - return Tools.row0(Tools.fields(intoArray(), fields.fields.fields())); + return row0(fieldsArray(intoArray(), fields.fields.fields())); } @SuppressWarnings("unchecked") diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 80d0461256..8987fe9a6a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -1850,12 +1850,17 @@ final class Tools { } static final List> fields(T[] values) { - if (values == null) - return new ArrayList<>(); + return asList(fieldsArray(values)); + } - List> result = new ArrayList<>(values.length); + @SuppressWarnings("unchecked") + static final Field[] fieldsArray(T[] values) { + if (values == null) + return (Field[]) EMPTY_FIELD; + + Field[] result = new Field[values.length]; for (int i = 0; i < values.length; i++) - result.add(field(values[i])); + result[i] = field(values[i]); return result; } @@ -1872,16 +1877,7 @@ final class Tools { } static final List> fields(Object[] values, Field[] fields) { - if (values == null || fields == null) - return new ArrayList<>(); - - int length = Math.min(values.length, fields.length); - List> result = new ArrayList<>(length); - - for (int i = 0; i < length; i++) - result.add(field(values[i], fields[i])); - - return result; + return asList(fieldsArray(values, fields)); } static final Field[] fieldsArray(Object[] values, Field[] fields) { @@ -1897,39 +1893,8 @@ final class Tools { return result; } - static final List> fields(Object[] values, Class type) { - if (values == null || type == null) - return new ArrayList<>(); - - List> result = new ArrayList<>(values.length); - for (int i = 0; i < values.length; i++) - result.add(field(values[i], type)); - - return result; - } - - static final List> fields(Object[] values, Class[] types) { - if (values == null || types == null) - return new ArrayList<>(); - - int length = Math.min(values.length, types.length); - List> result = new ArrayList<>(length); - - for (int i = 0; i < length; i++) - result.add(field(values[i], types[i])); - - return result; - } - static final List> fields(Object[] values, DataType type) { - if (values == null || type == null) - return new ArrayList<>(); - - List> result = new ArrayList<>(values.length); - for (Object value : values) - result.add(field(value, type)); - - return result; + return asList(fieldsArray(values, type)); } static final List> fields(Collection values, DataType type) { @@ -1943,31 +1908,6 @@ final class Tools { return result; } - static final List> fields(Object[] values, DataType[] types) { - if (values == null || types == null) - return new ArrayList<>(); - - int length = Math.min(values.length, types.length); - List> result = new ArrayList<>(length); - - for (int i = 0; i < length; i++) - result.add(field(values[i], types[i])); - - return result; - } - - @SuppressWarnings("unchecked") - static final Field[] fieldsArray(T[] values) { - if (values == null) - return (Field[]) EMPTY_FIELD; - - Field[] result = new Field[values.length]; - for (int i = 0; i < values.length; i++) - result[i] = field(values[i]); - - return result; - } - @SuppressWarnings("unchecked") static final Field[] fieldsArray(Object[] values, DataType type) { if (values == null) @@ -1980,6 +1920,10 @@ final class Tools { return result; } + static final List> fields(Object[] values, DataType[] types) { + return asList(fieldsArray(values, types)); + } + static final Field[] fieldsArray(Object[] values, DataType[] types) { if (values == null || types == null) return EMPTY_FIELD; diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTRecordImpl.java index 9304042bc4..c5b876c60d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTRecordImpl.java @@ -39,6 +39,8 @@ package org.jooq.impl; import static org.jooq.impl.DefaultExecuteContext.localConfiguration; import static org.jooq.impl.DefaultExecuteContext.localData; +import static org.jooq.impl.Tools.fieldsArray; +import static org.jooq.impl.Tools.row0; import java.sql.SQLException; import java.sql.SQLInput; @@ -92,7 +94,7 @@ public class UDTRecordImpl> extends AbstractRecord implem */ @Override public Row valuesRow() { - return Tools.row0(Tools.fields(intoArray(), fields.fields.fields())); + return row0(fieldsArray(intoArray(), fields.fields.fields())); } @Override