diff --git a/jOOQ/src/main/java/org/jooq/Cursor.java b/jOOQ/src/main/java/org/jooq/Cursor.java index 75366e8402..9dcde1cf33 100644 --- a/jOOQ/src/main/java/org/jooq/Cursor.java +++ b/jOOQ/src/main/java/org/jooq/Cursor.java @@ -115,6 +115,38 @@ public interface Cursor extends Iterable /* [java-8] */, Au */ Field[] fields(); + /** + * Get all fields from this Cursor, providing some fields. + * + * @return All available fields + * @see Row#fields(Field...) + */ + Field[] fields(Field... fields); + + /** + * Get all fields from this Cursor, providing some field names. + * + * @return All available fields + * @see Row#fields(String...) + */ + Field[] fields(String... fieldNames); + + /** + * Get all fields from this Cursor, providing some field names. + * + * @return All available fields + * @see Row#fields(Name...) + */ + Field[] fields(Name... fieldNames); + + /** + * Get all fields from this Cursor, providing some field indexes. + * + * @return All available fields + * @see Row#fields(int...) + */ + Field[] fields(int... fieldIndexes); + /** * Check whether this cursor has a next record. *

diff --git a/jOOQ/src/main/java/org/jooq/Result.java b/jOOQ/src/main/java/org/jooq/Result.java index 3a7cf4c052..5f6ea158a7 100644 --- a/jOOQ/src/main/java/org/jooq/Result.java +++ b/jOOQ/src/main/java/org/jooq/Result.java @@ -159,6 +159,38 @@ public interface Result extends List, Attachable { */ Field[] fields(); + /** + * Get all fields from this Result, providing some fields. + * + * @return All available fields + * @see Row#fields(Field...) + */ + Field[] fields(Field... fields); + + /** + * Get all fields from this Result, providing some field names. + * + * @return All available fields + * @see Row#fields(String...) + */ + Field[] fields(String... fieldNames); + + /** + * Get all fields from this Result, providing some field names. + * + * @return All available fields + * @see Row#fields(Name...) + */ + Field[] fields(Name... fieldNames); + + /** + * Get all fields from this Result, providing some field indexes. + * + * @return All available fields + * @see Row#fields(int...) + */ + Field[] fields(int... fieldIndexes); + /** * Convenience method to fetch a value at a given position in the result. * diff --git a/jOOQ/src/main/java/org/jooq/TableLike.java b/jOOQ/src/main/java/org/jooq/TableLike.java index 8cbf2e7ca6..ee132a3578 100644 --- a/jOOQ/src/main/java/org/jooq/TableLike.java +++ b/jOOQ/src/main/java/org/jooq/TableLike.java @@ -133,6 +133,38 @@ public interface TableLike extends QueryPart { */ Field[] fields(); + /** + * Get all fields from this table, providing some fields. + * + * @return All available fields + * @see Row#fields(Field...) + */ + Field[] fields(Field... fields); + + /** + * Get all fields from this table, providing some field names. + * + * @return All available fields + * @see Row#fields(String...) + */ + Field[] fields(String... fieldNames); + + /** + * Get all fields from this table, providing some field names. + * + * @return All available fields + * @see Row#fields(Name...) + */ + Field[] fields(Name... fieldNames); + + /** + * Get all fields from this table, providing some field indexes. + * + * @return All available fields + * @see Row#fields(int...) + */ + Field[] fields(int... fieldIndexes); + /** * The underlying table representation of this object *

diff --git a/jOOQ/src/main/java/org/jooq/UDT.java b/jOOQ/src/main/java/org/jooq/UDT.java index b1a788c388..193331619b 100644 --- a/jOOQ/src/main/java/org/jooq/UDT.java +++ b/jOOQ/src/main/java/org/jooq/UDT.java @@ -90,6 +90,38 @@ public interface UDT> extends QueryPart { */ Field[] fields(); + /** + * Get all fields from this UDT, providing some fields. + * + * @return All available fields + * @see Row#fields(Field...) + */ + Field[] fields(Field... fields); + + /** + * Get all fields from this UDT, providing some field names. + * + * @return All available fields + * @see Row#fields(String...) + */ + Field[] fields(String... fieldNames); + + /** + * Get all fields from this UDT, providing some field names. + * + * @return All available fields + * @see Row#fields(Name...) + */ + Field[] fields(Name... fieldNames); + + /** + * Get all fields from this UDT, providing some field indexes. + * + * @return All available fields + * @see Row#fields(int...) + */ + Field[] fields(int... fieldIndexes); + /** * Get the UDT schema */ diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java index 6927d412bc..25d01f36db 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java @@ -214,6 +214,26 @@ abstract class AbstractTable extends AbstractQueryPart impleme return fieldsRow().fields(); } + @Override + public final Field[] fields(Field... fields) { + return fieldsRow().fields(fields); + } + + @Override + public final Field[] fields(String... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(Name... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return fieldsRow().fields(fieldIndexes); + } + @Override public final Table asTable() { return this; diff --git a/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java b/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java index c981ebd26e..40da78e1be 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java @@ -174,7 +174,27 @@ class CursorImpl implements Cursor { @Override public final Field[] fields() { - return cursorFields.clone(); + return fieldsRow().fields(); + } + + @Override + public final Field[] fields(Field... fields) { + return fieldsRow().fields(fields); + } + + @Override + public final Field[] fields(String... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(Name... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return fieldsRow().fields(fieldIndexes); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java index a24ff4fc08..243ff783d0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Fields.java +++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java @@ -179,9 +179,8 @@ class Fields extends AbstractQueryPart implements RecordType[] fields(Field... f) { Field[] result = new Field[f.length]; - for (int i = 0; i < result.length; i++) { + for (int i = 0; i < result.length; i++) result[i] = field(f[i]); - } return result; } @@ -190,9 +189,8 @@ class Fields extends AbstractQueryPart implements RecordType[] fields(String... f) { Field[] result = new Field[f.length]; - for (int i = 0; i < result.length; i++) { + for (int i = 0; i < result.length; i++) result[i] = field(f[i]); - } return result; } @@ -201,9 +199,8 @@ class Fields extends AbstractQueryPart implements RecordType[] fields(Name... f) { Field[] result = new Field[f.length]; - for (int i = 0; i < result.length; i++) { + for (int i = 0; i < result.length; i++) result[i] = field(f[i]); - } return result; } @@ -212,9 +209,8 @@ class Fields extends AbstractQueryPart implements RecordType[] fields(int... f) { Field[] result = new Field[f.length]; - for (int i = 0; i < result.length; i++) { + for (int i = 0; i < result.length; i++) result[i] = field(f[i]); - } return result; } diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java index 34314b2a14..3742d2d68d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java @@ -253,44 +253,24 @@ class ResultImpl implements Result, AttachableInternal { return fields.fields().clone(); } - // @Override [#4113] TODO: Make this public - final Field[] fields(Field... f) { - Field[] result = new Field[f.length]; - - for (int i = 0; i < f.length; i++) - result[i] = field(f[i]); - - return result; + @Override + public final Field[] fields(Field... f) { + return fields.fields(f); } - // @Override [#4113] TODO: Make this public - final Field[] fields(int... indexes) { - Field[] result = new Field[indexes.length]; - - for (int i = 0; i < indexes.length; i++) - result[i] = field(indexes[i]); - - return result; + @Override + public final Field[] fields(int... indexes) { + return fields.fields(indexes); } - // @Override [#4113] TODO: Make this public - final Field[] fields(String... names) { - Field[] result = new Field[names.length]; - - for (int i = 0; i < names.length; i++) - result[i] = field(names[i]); - - return result; + @Override + public final Field[] fields(String... names) { + return fields.fields(names); } - // @Override [#4113] TODO: Make this public - final Field[] fields(Name... names) { - Field[] result = new Field[names.length]; - - for (int i = 0; i < names.length; i++) - result[i] = field(names[i]); - - return result; + @Override + public final Field[] fields(Name... names) { + return fields.fields(names); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java index 396430c79c..ac234120fd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java @@ -3325,6 +3325,26 @@ class SelectImpl[] fields(Field... fields) { + return getDelegate().fields(fields); + } + + @Override + public final Field[] fields(String... fieldNames) { + return getDelegate().fields(fieldNames); + } + + @Override + public final Field[] fields(Name... fieldNames) { + return getDelegate().fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return getDelegate().fields(fieldIndexes); + } + /** * The {@link SelectImpl} current condition step *

diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 80568fdbee..a9ec8cd784 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -323,6 +323,26 @@ class SelectQueryImpl extends AbstractResultQuery implement return asTable().fields(); } + @Override + public final Field[] fields(Field... fields) { + return asTable().fields(fields); + } + + @Override + public final Field[] fields(String... fieldNames) { + return asTable().fields(fieldNames); + } + + @Override + public final Field[] fields(Name... fieldNames) { + return asTable().fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return asTable().fields(fieldIndexes); + } + @Override public final Table asTable() { // Its usually better to alias nested selects that are used in diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java index 689930da64..315ffb6129 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java @@ -117,6 +117,26 @@ public class UDTImpl> extends AbstractQueryPart implement return fieldsRow().fields(); } + @Override + public final Field[] fields(Field... f) { + return fieldsRow().fields(f); + } + + @Override + public final Field[] fields(String... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(Name... fieldNames) { + return fieldsRow().fields(fieldNames); + } + + @Override + public final Field[] fields(int... fieldIndexes) { + return fieldsRow().fields(fieldIndexes); + } + final Fields fields0() { return fields; }