package frame.data;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
import frame.data.meta.EntityMeta;
|
import frame.data.meta.MetaContainer;
|
import frame.object.data.Filter;
|
import frame.object.data.OrderBy;
|
import frame.persist.NamedSQL;
|
import frame.persist.SQLRunner;
|
|
public class EntitySet implements Iterable<Entity> {
|
|
private EntityMeta entityMeta;
|
private List<Entity> entityList;
|
private int pos;
|
|
public EntitySet(String dataName) throws Exception {
|
this(MetaContainer.get(dataName), 15);
|
}
|
|
public EntitySet(EntityMeta tableMeta) {
|
this(tableMeta, 15);
|
}
|
|
public EntitySet(EntityMeta entityMeta, int size) {
|
this.entityMeta = entityMeta;
|
entityList = new ArrayList<Entity>(size);
|
pos = -1;
|
}
|
|
public Entity append() {
|
Entity entity = new Entity(entityMeta);
|
entityList.add(entity);
|
|
return entity;
|
}
|
|
public Entity next() {
|
pos++;
|
|
if (pos < entityList.size()) {
|
return entityList.get(pos);
|
}
|
|
return null;
|
}
|
|
public String[] getLowerNames() {
|
return entityMeta.getLowerNames();
|
}
|
|
public boolean isEmpty() {
|
return entityList.isEmpty();
|
}
|
|
public String getDataName() {
|
return entityMeta.getName();
|
}
|
|
public int getFieldCount() {
|
return entityMeta.getFieldCount();
|
}
|
|
public void first() {
|
pos = -1;
|
}
|
|
public EntityMeta getEntityMeta() {
|
return entityMeta;
|
}
|
|
@Override
|
public Iterator<Entity> iterator() {
|
return entityList.iterator();
|
}
|
|
public void clear() {
|
entityList.clear();
|
pos = -1;
|
}
|
|
public int size() {
|
return entityList.size();
|
}
|
|
public static void loadDB(EntitySet entitySet, Filter filter, OrderBy orderBy) throws Exception {
|
NamedSQL namedSQL = NamedSQL.getInstance("getDataSet");
|
namedSQL.setTableName(entitySet.getDataName()).setFilter(filter).setOrderBy(orderBy);
|
SQLRunner.getEntitySet(namedSQL, entitySet);
|
}
|
|
public void loadDB(Filter filter, OrderBy orderBy) throws Exception {
|
loadDB(this, filter, orderBy);
|
}
|
|
public void loadDB(EntitySet entitySet, Filter filter, Page page, OrderBy orderBy) throws Exception {
|
NamedSQL namedSQL = NamedSQL.getInstance("getSetByPage");
|
namedSQL.setTableName(entitySet.getDataName()).setFilter(filter).setPage(page).setOrderBy(orderBy);
|
SQLRunner.getEntitySet(namedSQL, entitySet);
|
}
|
|
public void loadDB(Filter filter, Page page, OrderBy orderBy) throws Exception {
|
loadDB(this, filter, page, orderBy);
|
}
|
|
public int getDBCount(Filter filter) {
|
// TODO Auto-generated method stub
|
return 0;
|
}
|
|
public boolean hasNext() {
|
return pos < entityList.size();
|
}
|
|
}
|