package foundation.data.getter; import java.sql.ResultSet; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.meta.field.FieldsRuntime; import foundation.data.object.BatchCounter; public class EntitySetGetter extends DataGetter { private BatchCounter batchCounter; private EntitySet entitySet; public EntitySetGetter(FieldsRuntime tableMeta) { this.fieldsMeta = tableMeta; } public EntitySetGetter(FieldsRuntime tableMeta, BatchCounter batchCounter) { this.fieldsMeta = tableMeta; this.batchCounter = batchCounter; } public void loadData(ResultSet rslt) throws Exception { if (rslt == null) { return; } if (entitySet == null) { if (batchCounter != null) { entitySet = new EntitySet(fieldsMeta, batchCounter.getBatch()); } else { entitySet = new EntitySet(fieldsMeta); } } int cnt = entitySet.getFieldCount(); Entity entity; Object obj; int loaded = 0; while (rslt.next()) { entity = new Entity(fieldsMeta); entitySet.append(entity); for (int i = 0; i < cnt; i++) { obj = rslt.getObject(i + 1); entity.set(i, obj); } loaded++; } if (batchCounter != null) { batchCounter.step(loaded); } } public EntitySet getDataSet() { return entitySet; } }