diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java index 692afdda14..d09e1c4969 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java @@ -327,6 +327,13 @@ extends BaseTestinto(Object[].class) * * @return This record as an array + * @see #fromArray(Object...) */ Object[] intoArray(); @@ -722,4 +723,15 @@ public interface Record extends FieldProvider, Attachable { */ void fromMap(Map map); + /** + * Load data from an array into this record + *

+ * The argument array is expected to hold values for this record's field + * indexes. Missing values will be left untouched. Excess values will be + * ignored. + *

+ * This is the inverse operation to {@link #intoArray()} + */ + void fromArray(Object... array); + } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index bf4ee88ca9..03e0e248f8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -780,6 +780,16 @@ abstract class AbstractRecord extends AbstractStore implements Record { } } + @Override + public final void fromArray(Object... array) { + List> f = getFields(); + int size = f.size(); + + for (int i = 0; i < size && i < array.length; i++) { + Utils.setValue(this, f.get(i), array[i]); + } + } + /** * This method was implemented with [#799]. It may be useful to make it * public for broader use...?