Refactored some reusable code
This commit is contained in:
parent
2df2a478a6
commit
7032af7c79
@ -337,6 +337,12 @@ abstract class AbstractRecord extends AbstractStore implements Record {
|
||||
setValue(field, converter.to(value));
|
||||
}
|
||||
|
||||
final void setValues(Field<?>[] fields, AbstractRecord record) {
|
||||
for (Field<?> field : fields) {
|
||||
setValue(field, record.getValue0(field));
|
||||
}
|
||||
}
|
||||
|
||||
final void setValue(Field<?> field, Value<?> value) {
|
||||
setValue(fieldsRow().indexOf(field), value);
|
||||
}
|
||||
@ -712,10 +718,7 @@ abstract class AbstractRecord extends AbstractStore implements Record {
|
||||
// the best way to fetch a record
|
||||
rs.absolute(rsIndex - 1);
|
||||
AbstractRecord record = (AbstractRecord) create().fetchLazy(rs).fetchOne();
|
||||
|
||||
for (Field<?> field : f) {
|
||||
setValue(field, record.getValue0(field));
|
||||
}
|
||||
setValues(f, record);
|
||||
}
|
||||
catch (SQLException e) {
|
||||
throw translate("Cannot refresh record", e);
|
||||
|
||||
@ -87,11 +87,7 @@ public class UpdatableRecordImpl<R extends UpdatableRecord<R>> extends TableReco
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public Record key() {
|
||||
RecordImpl result = new RecordImpl(getPrimaryKey().getFields());
|
||||
|
||||
for (Field<?> field : result.fields.fields) {
|
||||
result.setValue(field, getValue0(field));
|
||||
}
|
||||
|
||||
result.setValues(result.fields.fields.fields, this);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -347,10 +343,7 @@ public class UpdatableRecordImpl<R extends UpdatableRecord<R>> extends TableReco
|
||||
|
||||
if (select.execute() == 1) {
|
||||
AbstractRecord record = (AbstractRecord) select.getResult().get(0);
|
||||
|
||||
for (Field<?> field : f) {
|
||||
setValue(field, record.getValue0(field));
|
||||
}
|
||||
setValues(f, record);
|
||||
}
|
||||
else {
|
||||
throw new InvalidResultException("Exactly one row expected for refresh. Record does not exist in database.");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user