package frame.persist.loader;
|
|
import java.sql.ResultSet;
|
|
import frame.object.data.Entity;
|
import frame.object.data.EntityFactory;
|
import frame.object.data.EntitySet;
|
|
public class EntitySetLoader extends DataLoader {
|
|
private EntitySet entitySet;
|
private EntityFactory entityFactory;
|
|
public EntitySetLoader(String tableName, EntityFactory entityFactory) {
|
super(tableName);
|
this.entityFactory = entityFactory;
|
}
|
|
public EntitySetLoader(EntitySet entitySet) {
|
this.entitySet = entitySet;
|
|
this.tableName = entitySet.getTableName();
|
this.entityMeta = entitySet.getEntityMeta();
|
}
|
|
protected void loadData(ResultSet rslt) throws Exception {
|
entitySet = new EntitySet(entityMeta);
|
int cnt = entitySet.getFieldCount();
|
|
if (entityFactory != null) {
|
entityFactory.setEntityMeta(entityMeta);
|
}
|
|
Entity entity;
|
Object obj;
|
|
while (rslt.next()) {
|
if (entityFactory == null) {
|
entity = new Entity(entityMeta);
|
}
|
else {
|
entity = entityFactory.createEntity(rslt);
|
}
|
|
entitySet.append(entity);
|
|
for (int i = 0; i < cnt; i++) {
|
obj = rslt.getObject(i + 1);
|
entity.set(i, obj);
|
}
|
}
|
}
|
|
public EntitySet getDataSet() {
|
return entitySet;
|
}
|
|
}
|