package foundation.data.getter;
|
|
import java.sql.ResultSet;
|
import java.util.List;
|
|
import foundation.data.meta.field.Field;
|
import foundation.data.meta.field.FieldsRuntime;
|
import foundation.object.reader.EntityReader;
|
import foundation.object.reader.ObjectReader;
|
|
public class ObjectLoader extends DataGetter {
|
|
private Class<?> clazz;
|
private ObjectReader objectReader;
|
private Object object;
|
|
|
public ObjectLoader(FieldsRuntime tableMeta, Class<?> clazz) throws Exception {
|
this.clazz = clazz;
|
this.fieldsMeta = tableMeta;
|
}
|
|
@Override
|
protected void loadData(ResultSet rslt) throws Exception {
|
objectReader = EntityReader.getObjectInstance(clazz);
|
|
if (rslt.next()) {
|
if (object == null) {
|
object = clazz.newInstance();
|
}
|
|
List<Field> fields = fieldsMeta.getFields();
|
int size = fields.size(); String name;
|
|
for (int i = 0; i < size; i++) {
|
Field field = fields.get(i);
|
name = field.getName();
|
|
if (objectReader.containsProperty(name)) {
|
Object value = rslt.getObject(i + 1);
|
objectReader.setData(name, value, object);
|
}
|
}
|
}
|
}
|
|
public Object getObject() {
|
return object;
|
}
|
|
public void setObject(Object object) {
|
this.object = object;
|
}
|
|
}
|