diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 8319aea6e0..698d7a524d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -89,9 +89,9 @@ abstract class AbstractRecord extends AbstractStore implements Record { this.fields = fields; } - final FieldProvider getFieldProvider() { - return fields; - } + // ------------------------------------------------------------------------ + // XXX: Attachable API + // ------------------------------------------------------------------------ @Override public final List getAttachables() { @@ -109,6 +109,14 @@ abstract class AbstractRecord extends AbstractStore implements Record { return result; } + // ------------------------------------------------------------------------ + // XXX: FieldProvider API + // ------------------------------------------------------------------------ + + final FieldProvider getFieldProvider() { + return fields; + } + @Override public final List> getFields() { return fields.getFields(); @@ -129,11 +137,101 @@ abstract class AbstractRecord extends AbstractStore implements Record { return fields.getField(index); } + @Override + public final int getIndex(Field field) { + return fields.getIndex(field); + } + + // ------------------------------------------------------------------------ + // XXX: Record API + // ------------------------------------------------------------------------ + @Override public final int size() { return getFields().size(); } + @Override + public final T getValue(Field field) { + return getValue0(field).getValue(); + } + + @Override + public final T getValue(Field field, T defaultValue) { + return getValue0(field).getValue(defaultValue); + } + + @Override + public final T getValue(Field field, Class type) { + return Convert.convert(getValue(field), type); + } + + @Override + public final T getValue(Field field, Class type, T defaultValue) { + final T result = getValue(field, type); + return result == null ? defaultValue : result; + } + + @Override + public final U getValue(Field field, Converter converter) { + return converter.from(getValue(field)); + } + + @Override + public final U getValue(Field field, Converter converter, U defaultValue) { + final U result = getValue(field, converter); + return result == null ? defaultValue : result; + } + + @Override + public final Object getValue(int index) { + return getValue0(index).getValue(); + } + + @Override + public final U getValue(int index, Converter converter) { + return Convert.convert(getValue(index), converter); + } + + @Override + public final U getValue(int index, Converter converter, U defaultValue) { + final U result = getValue(index, converter); + return result == null ? defaultValue : result; + } + + @Override + public final Object getValue(String fieldName) { + return getValue(getField(fieldName)); + } + + @SuppressWarnings("unchecked") + @Override + public final Object getValue(String fieldName, Object defaultValue) { + return getValue((Field) getField(fieldName), defaultValue); + } + + @Override + public final T getValue(String fieldName, Class type) { + return Convert.convert(getValue(fieldName), type); + } + + @Override + public final Z getValue(String fieldName, Class type, Z defaultValue) { + final Z result = getValue(fieldName, type); + return result == null ? defaultValue : result; + } + + @Override + public final U getValue(String fieldName, Converter converter) { + return Convert.convert(getValue(fieldName), converter); + } + + @Override + public final U getValue(String fieldName, Converter converter, U defaultValue) { + final U result = getValue(fieldName, converter); + return result == null ? defaultValue : result; + } + @SuppressWarnings("unchecked") final Value getValue0(int index) { Value[] v = getValues(); @@ -152,35 +250,16 @@ abstract class AbstractRecord extends AbstractStore implements Record { final Value[] getValues() { if (values == null) { - init(); + values = new Value[fields.getFields().size()]; + + for (int i = 0; i < values.length; i++) { + values[i] = new Value(null); + } } return values; } - @Override - public final int getIndex(Field field) { - return fields.getIndex(field); - } - - private final void init() { - values = new Value[fields.getFields().size()]; - - for (int i = 0; i < values.length; i++) { - values[i] = new Value(null); - } - } - - @Override - public final T getValue(Field field) { - return getValue0(field).getValue(); - } - - @Override - public final T getValue(Field field, T defaultValue) { - return getValue0(field).getValue(defaultValue); - } - @Override public final void setValue(Field field, T value) { UniqueKey mainKey = getMainKey(); @@ -239,84 +318,6 @@ abstract class AbstractRecord extends AbstractStore implements Record { } } - @Override - public String toString() { - Result result = new ResultImpl(getConfiguration(), fields); - result.add(this); - return result.toString(); - } - - @Override - public final Object getValue(int index) { - return getValue0(index).getValue(); - } - - @Override - public final Object getValue(String fieldName) { - return getValue(getField(fieldName)); - } - - @SuppressWarnings("unchecked") - @Override - public final Object getValue(String fieldName, Object defaultValue) { - return getValue((Field) getField(fieldName), defaultValue); - } - - @Override - public final T getValue(Field field, Class type) { - return Convert.convert(getValue(field), type); - } - - @Override - public final T getValue(Field field, Class type, T defaultValue) { - final T result = getValue(field, type); - return result == null ? defaultValue : result; - } - - @Override - public final T getValue(String fieldName, Class type) { - return Convert.convert(getValue(fieldName), type); - } - - @Override - public final Z getValue(String fieldName, Class type, Z defaultValue) { - final Z result = getValue(fieldName, type); - return result == null ? defaultValue : result; - } - - @Override - public final U getValue(Field field, Converter converter) { - return converter.from(getValue(field)); - } - - @Override - public final U getValue(Field field, Converter converter, U defaultValue) { - final U result = getValue(field, converter); - return result == null ? defaultValue : result; - } - - @Override - public final U getValue(int index, Converter converter) { - return Convert.convert(getValue(index), converter); - } - - @Override - public final U getValue(int index, Converter converter, U defaultValue) { - final U result = getValue(index, converter); - return result == null ? defaultValue : result; - } - - @Override - public final U getValue(String fieldName, Converter converter) { - return Convert.convert(getValue(fieldName), converter); - } - - @Override - public final U getValue(String fieldName, Converter converter, U defaultValue) { - final U result = getValue(fieldName, converter); - return result == null ? defaultValue : result; - } - /* * This method is overridden covariantly by TableRecordImpl */ @@ -773,4 +774,15 @@ abstract class AbstractRecord extends AbstractStore implements Record { Utils.setValue(this, field, member.get(source)); } } + + // ------------------------------------------------------------------------ + // XXX: Object API + // ------------------------------------------------------------------------ + + @Override + public String toString() { + Result result = new ResultImpl(getConfiguration(), fields); + result.add(this); + return result.toString(); + } }