package frame.persist.loader; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import frame.data.meta.Field; import frame.data.reader.EntityReaderContainer; import frame.data.reader.ObjectReader; public class ListLoader extends DataLoader { protected static EntityReaderContainer objectReaderContainer; private Class clazz; private ObjectReader objectReader; private List 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 ArrayList(); List fields = entityMeta.getFields(); T object; int size = fields.size(); String name; while (rslt.next()) { object = clazz.newInstance(); list.add(object); for (int i = 1; i <= size; i++) { Field field = fields.get(i); name = field.getName(); if (objectReader.containsProperty(name)) { Object value = rslt.getObject(i); objectReader.setData(name, value, object); } } } } public List getList() { return list; } }