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 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; } }