[#1976] Add FieldProvider.getIndex(String)

This commit is contained in:
Lukas Eder 2012-11-23 13:37:04 +01:00
parent ba9db424ff
commit 7f45eb66f5
9 changed files with 56 additions and 6 deletions

View File

@ -80,7 +80,7 @@ public interface FieldProvider {
List<Field<?>> getFields();
/**
* Get a fields index from this field provider
* Get a field's index from this field provider
*
* @param field The field to look for
* @return The field's index
@ -88,4 +88,14 @@ public interface FieldProvider {
* provider.
*/
int getIndex(Field<?> field) throws IllegalArgumentException;
/**
* Get a field's index from this field provider
*
* @param fieldName The field name to look for
* @return The field's index
* @throws IllegalArgumentException if the field is not contained in this
* provider.
*/
int getIndex(String fieldName) throws IllegalArgumentException;
}

View File

@ -408,4 +408,9 @@ abstract class AbstractDelegatingSelect<R extends Record>
public final int getIndex(Field<?> field) {
return getDelegate().asTable().getIndex(field);
}
@Override
public final int getIndex(String fieldName) {
return getDelegate().asTable().getIndex(fieldName);
}
}

View File

@ -77,10 +77,15 @@ abstract class AbstractFieldProviderQueryPart<R extends Record> extends Abstract
}
@Override
public final int getIndex(Field<?> field) throws IllegalArgumentException {
public final int getIndex(Field<?> field) {
return getFieldList().getIndex(field);
}
@Override
public final int getIndex(String fieldName) {
return getFieldList().getIndex(fieldName);
}
/**
* Subclasses should override this method to provide the set of fields
* contained in the concrete table implementation. For example, a

View File

@ -145,6 +145,11 @@ abstract class AbstractRecord extends AbstractStore implements Record {
return fields.getIndex(field);
}
@Override
public int getIndex(String fieldName) {
return fields.getIndex(fieldName);
}
// ------------------------------------------------------------------------
// XXX: Record API
// ------------------------------------------------------------------------

View File

@ -115,10 +115,15 @@ abstract class AbstractSelect<R extends Record> extends AbstractResultQuery<R> i
}
@Override
public final int getIndex(Field<?> field) throws IllegalArgumentException {
public final int getIndex(Field<?> field) {
return asTable().getIndex(field);
}
@Override
public int getIndex(String fieldName) {
return asTable().getIndex(fieldName);
}
@Override
public final Table<R> asTable() {
// Its usually better to alias nested selects that are used in

View File

@ -120,10 +120,15 @@ class CursorImpl<R extends Record> implements Cursor<R> {
}
@Override
public final int getIndex(Field<?> field) throws IllegalArgumentException {
public final int getIndex(Field<?> field) {
return fields.getIndex(field);
}
@Override
public final int getIndex(String fieldName) {
return fields.getIndex(fieldName);
}
@Override
public final Iterator<R> iterator() {
if (iterator == null) {

View File

@ -120,7 +120,7 @@ class FieldList extends QueryPartList<Field<?>> implements FieldProvider {
}
@Override
public final int getIndex(Field<?> field) throws IllegalArgumentException {
public final int getIndex(Field<?> field) {
if (indexes == null) {
indexes = new LinkedHashMap<Field<?>, Integer>();
@ -141,4 +141,9 @@ class FieldList extends QueryPartList<Field<?>> implements FieldProvider {
throw new IllegalArgumentException("Field " + field + " is not contained in list");
}
@Override
public final int getIndex(String fieldName) {
return getIndex(getField(fieldName));
}
}

View File

@ -148,6 +148,11 @@ class MetaDataFieldProvider implements FieldProvider, Serializable {
return fields.getIndex(field);
}
@Override
public final int getIndex(String fieldName) throws IllegalArgumentException {
return fields.getIndex(fieldName);
}
// -------------------------------------------------------------------------
// The Object API
// -------------------------------------------------------------------------

View File

@ -148,6 +148,11 @@ class ResultImpl<R extends Record> implements Result<R>, AttachableInternal {
return fields.getIndex(field);
}
@Override
public final int getIndex(String fieldName) {
return fields.getIndex(fieldName);
}
@Override
public final boolean isEmpty() {
return records.isEmpty();
@ -1071,7 +1076,7 @@ class ResultImpl<R extends Record> implements Result<R>, AttachableInternal {
@Override
public final Result<R> sortAsc(String fieldName, Comparator<?> comparator) {
return sortAsc(getIndex(getField(fieldName)), comparator);
return sortAsc(getIndex(fieldName), comparator);
}
@Override