package frame.persist.loader; import frame.object.data.ObjectList; import frame.object.meta.Field; import frame.object.reader.EntityReaderContainer; import frame.object.reader.ObjectReader; import java.sql.ResultSet; import java.util.List; public class ListLoader extends DataLoader { protected static EntityReaderContainer objectReaderContainer; private Class clazz; private ObjectReader objectReader; private ObjectList list; static { objectReaderContainer = EntityReaderContainer.getInstance(); } public ListLoader(String tableName, Class clazz) throws Exception { super(tableName); this.clazz = clazz; objectReader = objectReaderContainer.getObjectReader(clazz); } @Override protected void loadData(ResultSet rslt) throws Exception { list = new ObjectList(); List fields = entityMeta.getFields(); T object; int size = fields.size(); String name; int idx_id = entityMeta.getIndex("id"); while (rslt.next()) { object = clazz.newInstance(); String id = null; for (int i = 0; i < size; i++) { Field field = fields.get(i); name = field.getName(); if (i == idx_id) { id = rslt.getString(i + 1); } if (objectReader.containsProperty(name)) { Object value = rslt.getObject(i + 1); objectReader.setData(name, value, object); } } list.add(id, object); } } public ObjectList getList() { return list; } }