diff --git a/jOOQ/src/main/java/org/jooq/FieldProvider.java b/jOOQ/src/main/java/org/jooq/FieldProvider.java index f7a2b44adc..58aa039650 100644 --- a/jOOQ/src/main/java/org/jooq/FieldProvider.java +++ b/jOOQ/src/main/java/org/jooq/FieldProvider.java @@ -80,7 +80,7 @@ public interface FieldProvider { List> 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; } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingSelect.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingSelect.java index 62b94a3ec8..dd63f7223b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingSelect.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingSelect.java @@ -408,4 +408,9 @@ abstract class AbstractDelegatingSelect public final int getIndex(Field field) { return getDelegate().asTable().getIndex(field); } + + @Override + public final int getIndex(String fieldName) { + return getDelegate().asTable().getIndex(fieldName); + } } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractFieldProviderQueryPart.java b/jOOQ/src/main/java/org/jooq/impl/AbstractFieldProviderQueryPart.java index 80ce14fdb7..19f16d35c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractFieldProviderQueryPart.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractFieldProviderQueryPart.java @@ -77,10 +77,15 @@ abstract class AbstractFieldProviderQueryPart 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 diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index a9d1fcb694..de8c8cbb28 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -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 // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractSelect.java b/jOOQ/src/main/java/org/jooq/impl/AbstractSelect.java index 95f4e483c1..770fcdf7ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractSelect.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractSelect.java @@ -115,10 +115,15 @@ abstract class AbstractSelect extends AbstractResultQuery 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 asTable() { // Its usually better to alias nested selects that are used in diff --git a/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java b/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java index f032c208ce..3ffb5608b9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CursorImpl.java @@ -120,10 +120,15 @@ class CursorImpl implements Cursor { } @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 iterator() { if (iterator == null) { diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldList.java b/jOOQ/src/main/java/org/jooq/impl/FieldList.java index 95181524b3..4a6cc26872 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldList.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldList.java @@ -120,7 +120,7 @@ class FieldList extends QueryPartList> implements FieldProvider { } @Override - public final int getIndex(Field field) throws IllegalArgumentException { + public final int getIndex(Field field) { if (indexes == null) { indexes = new LinkedHashMap, Integer>(); @@ -141,4 +141,9 @@ class FieldList extends QueryPartList> implements FieldProvider { throw new IllegalArgumentException("Field " + field + " is not contained in list"); } + + @Override + public final int getIndex(String fieldName) { + return getIndex(getField(fieldName)); + } } diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaDataFieldProvider.java b/jOOQ/src/main/java/org/jooq/impl/MetaDataFieldProvider.java index 23804a579f..67a2b7b1f4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaDataFieldProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaDataFieldProvider.java @@ -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 // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java index ef5d862522..297744fbce 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java @@ -148,6 +148,11 @@ class ResultImpl implements Result, 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 implements Result, AttachableInternal { @Override public final Result sortAsc(String fieldName, Comparator comparator) { - return sortAsc(getIndex(getField(fieldName)), comparator); + return sortAsc(getIndex(fieldName), comparator); } @Override