package frame.persist.loader; import java.sql.ResultSet; import java.util.List; import frame.data.meta.Field; import frame.data.reader.EntityReaderContainer; import frame.data.reader.ObjectReader; public class ObjectLoader extends DataLoader { protected static EntityReaderContainer objectReaderContainer; private Class clazz; private ObjectReader objectReader; private Object object; static { objectReaderContainer = EntityReaderContainer.getInstance(); } public ObjectLoader(String tableName, Class clazz) throws Exception { super(tableName); this.clazz = clazz; objectReader = objectReaderContainer.getObjectReader(clazz); } @Override protected void loadData(ResultSet rslt) throws Exception { if (rslt.next()) { if (object == null) { object = clazz.newInstance(); } List fields = entityMeta.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; } }