[#2521] Add Row.fields(Field<?>...), Row.fields(String...),

Row.fields(int...) to extract Field<?>[] from a row
This commit is contained in:
Lukas Eder 2013-06-14 10:58:01 +02:00
parent 7c7504e9ff
commit 5d4b335573
4 changed files with 84 additions and 0 deletions

View File

@ -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) {

View File

@ -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.
*

View File

@ -113,6 +113,36 @@ class Fields extends AbstractQueryPart implements Iterable<Field<?>> {
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

View File

@ -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);