Clean up AbstractRecord
This commit is contained in:
parent
31d145ea52
commit
3ae9425540
@ -89,9 +89,9 @@ abstract class AbstractRecord extends AbstractStore<Object> implements Record {
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
final FieldProvider getFieldProvider() {
|
||||
return fields;
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Attachable API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final List<Attachable> getAttachables() {
|
||||
@ -109,6 +109,14 @@ abstract class AbstractRecord extends AbstractStore<Object> implements Record {
|
||||
return result;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: FieldProvider API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
final FieldProvider getFieldProvider() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final List<Field<?>> getFields() {
|
||||
return fields.getFields();
|
||||
@ -129,11 +137,101 @@ abstract class AbstractRecord extends AbstractStore<Object> 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> T getValue(Field<T> field) {
|
||||
return getValue0(field).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<T> field, T defaultValue) {
|
||||
return getValue0(field).getValue(defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<?> field, Class<? extends T> type) {
|
||||
return Convert.convert(getValue(field), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<?> field, Class<? extends T> type, T defaultValue) {
|
||||
final T result = getValue(field, type);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, U> U getValue(Field<T> field, Converter<? super T, U> converter) {
|
||||
return converter.from(getValue(field));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, U> U getValue(Field<T> field, Converter<? super T, U> 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> U getValue(int index, Converter<?, U> converter) {
|
||||
return Convert.convert(getValue(index), converter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(int index, Converter<?, U> 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<Object>) getField(fieldName), defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(String fieldName, Class<? extends T> type) {
|
||||
return Convert.convert(getValue(fieldName), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <Z> Z getValue(String fieldName, Class<? extends Z> type, Z defaultValue) {
|
||||
final Z result = getValue(fieldName, type);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(String fieldName, Converter<?, U> converter) {
|
||||
return Convert.convert(getValue(fieldName), converter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(String fieldName, Converter<?, U> converter, U defaultValue) {
|
||||
final U result = getValue(fieldName, converter);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final <T> Value<T> getValue0(int index) {
|
||||
Value<?>[] v = getValues();
|
||||
@ -152,35 +250,16 @@ abstract class AbstractRecord extends AbstractStore<Object> 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<Object>(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<Object>(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<T> field) {
|
||||
return getValue0(field).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<T> field, T defaultValue) {
|
||||
return getValue0(field).getValue(defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> void setValue(Field<T> field, T value) {
|
||||
UniqueKey<?> mainKey = getMainKey();
|
||||
@ -239,84 +318,6 @@ abstract class AbstractRecord extends AbstractStore<Object> implements Record {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
Result<AbstractRecord> result = new ResultImpl<AbstractRecord>(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<Object>) getField(fieldName), defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<?> field, Class<? extends T> type) {
|
||||
return Convert.convert(getValue(field), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(Field<?> field, Class<? extends T> type, T defaultValue) {
|
||||
final T result = getValue(field, type);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T getValue(String fieldName, Class<? extends T> type) {
|
||||
return Convert.convert(getValue(fieldName), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <Z> Z getValue(String fieldName, Class<? extends Z> type, Z defaultValue) {
|
||||
final Z result = getValue(fieldName, type);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, U> U getValue(Field<T> field, Converter<? super T, U> converter) {
|
||||
return converter.from(getValue(field));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, U> U getValue(Field<T> field, Converter<? super T, U> converter, U defaultValue) {
|
||||
final U result = getValue(field, converter);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(int index, Converter<?, U> converter) {
|
||||
return Convert.convert(getValue(index), converter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(int index, Converter<?, U> converter, U defaultValue) {
|
||||
final U result = getValue(index, converter);
|
||||
return result == null ? defaultValue : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(String fieldName, Converter<?, U> converter) {
|
||||
return Convert.convert(getValue(fieldName), converter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <U> U getValue(String fieldName, Converter<?, U> 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<Object> implements Record {
|
||||
Utils.setValue(this, field, member.get(source));
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Object API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
Result<AbstractRecord> result = new ResultImpl<AbstractRecord>(getConfiguration(), fields);
|
||||
result.add(this);
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user