david-PC\david
2018-06-12 f240ac3ccd37c541cab2c21cfc433d3510999a3c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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();
    }
 
}