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