From 5d4b335573817dcc16260f60ccfd021eb1ffd718 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 14 Jun 2013 10:58:01 +0200 Subject: [PATCH] [#2521] Add Row.fields(Field...), Row.fields(String...), Row.fields(int...) to extract Field[] from a row --- jOOQ-tools/src/org/jooq/xtend/Rows.xtend | 15 ++++++++++ jOOQ/src/main/java/org/jooq/Row.java | 24 +++++++++++++++ jOOQ/src/main/java/org/jooq/impl/Fields.java | 30 +++++++++++++++++++ jOOQ/src/main/java/org/jooq/impl/RowImpl.java | 15 ++++++++++ 4 files changed, 84 insertions(+) diff --git a/jOOQ-tools/src/org/jooq/xtend/Rows.xtend b/jOOQ-tools/src/org/jooq/xtend/Rows.xtend index 186bef798c..10a3cf6052 100644 --- a/jOOQ-tools/src/org/jooq/xtend/Rows.xtend +++ b/jOOQ-tools/src/org/jooq/xtend/Rows.xtend @@ -1308,6 +1308,21 @@ class Rows extends Generators { public final Field[] fields() { return fields.fields(); } + + @Override + public final Field[] fields(Field... f) { + return fields.fields(f); + } + + @Override + public final Field[] fields(String... fieldNames) { + return fields.fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return fields.fields(fieldIndexes); + } @Override public final int indexOf(Field field) { diff --git a/jOOQ/src/main/java/org/jooq/Row.java b/jOOQ/src/main/java/org/jooq/Row.java index b721632dbb..fa54ae8401 100644 --- a/jOOQ/src/main/java/org/jooq/Row.java +++ b/jOOQ/src/main/java/org/jooq/Row.java @@ -90,6 +90,30 @@ public interface Row extends QueryPart { */ Field[] fields(); + /** + * Get all fields from this row, providing some fields. + * + * @return All available fields + * @see #field(Field) + */ + Field[] fields(Field... fields); + + /** + * Get all fields from this row, providing some field names. + * + * @return All available fields + * @see #field(String) + */ + Field[] fields(String... fieldNames); + + /** + * Get all fields from this row, providing some field indexes. + * + * @return All available fields + * @see #field(int) + */ + Field[] fields(int... fieldIndexes); + /** * Get a field's index from this row. * diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java index 1225ac87af..4d0723dd63 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Fields.java +++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java @@ -113,6 +113,36 @@ class Fields extends AbstractQueryPart implements Iterable> { return fields; } + final Field[] fields(Field... f) { + Field[] result = new Field[f.length]; + + for (int i = 0; i < result.length; i++) { + result[i] = field(f[i]); + } + + return result; + } + + final Field[] fields(String... f) { + Field[] result = new Field[f.length]; + + for (int i = 0; i < result.length; i++) { + result[i] = field(f[i]); + } + + return result; + } + + final Field[] fields(int... f) { + Field[] result = new Field[f.length]; + + for (int i = 0; i < result.length; i++) { + result[i] = field(f[i]); + } + + return result; + } + final int indexOf(Field field) { // Get an exact match, or a field with a similar name diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java index 0b24da5e61..f7bb8a9784 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl.java @@ -229,6 +229,21 @@ implements return fields.fields(); } + @Override + public final Field[] fields(Field... f) { + return fields.fields(f); + } + + @Override + public final Field[] fields(String... fieldNames) { + return fields.fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return fields.fields(fieldIndexes); + } + @Override public final int indexOf(Field field) { return fields.indexOf(field);