Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dalfile / src / org / gvsig / fmap / dal / store / dbf / DBFFeatureData.java @ 28076

History | View | Annotate | Download (1.57 KB)

1 24498 jmvivo
package org.gvsig.fmap.dal.store.dbf;
2 23912 jmvivo
3 24502 jmvivo
import org.gvsig.fmap.dal.exception.DataException;
4
import org.gvsig.fmap.dal.exception.ReadRuntimeException;
5 27757 cordinyana
import org.gvsig.fmap.dal.feature.FeatureType;
6 24498 jmvivo
import org.gvsig.fmap.dal.feature.spi.DefaultFeatureData;
7 26066 jmvivo
import org.gvsig.fmap.dal.feature.spi.FeatureData;
8 24447 jmvivo
import org.gvsig.fmap.geom.Geometry;
9
import org.gvsig.fmap.geom.primitive.Envelope;
10 23912 jmvivo
11
public class DBFFeatureData extends DefaultFeatureData {
12 24432 jmvivo
        protected DBFStoreProvider store;
13
        protected boolean loading;
14 26028 jmvivo
        protected boolean loaded;
15 23912 jmvivo
16 27757 cordinyana
        public DBFFeatureData(DBFStoreProvider store, FeatureType type) {
17 23912 jmvivo
                super(type);
18 24432 jmvivo
                this.store = store;
19
                loading = false;
20 26028 jmvivo
                loaded = false;
21 23912 jmvivo
        }
22
23 24432 jmvivo
        protected void load() {
24 26028 jmvivo
                if (loading || loaded || this.isNew()) {
25 24432 jmvivo
                        return;
26
                }
27
                loading = true;
28
                try {
29
                        this.store.loadFeatureDataByIndex(this);
30
                } catch (DataException e) {
31
                        throw new ReadRuntimeException("DBFFeatureData.load", e);
32
                } finally {
33
                        loading = false;
34 26028 jmvivo
                        loaded = true;
35 24432 jmvivo
                }
36
        }
37
38
        public void set(int i, Object value) {
39
                this.load();
40
                super.set(i, value);
41
        }
42
43
        public void set(String name, Object value) {
44
                this.load();
45
                super.set(featureType.getIndex(name), value);
46
        }
47
48
        public Object get(int i) {
49
                this.load();
50
                return super.get(i);
51
        }
52
53
        public Object get(String name) {
54
                this.load();
55
                return super.get(name);
56
        }
57
58 24447 jmvivo
        public Geometry getDefaultGeometry() {
59
                return null;
60
        }
61
62
        public Envelope getDefaultEnvelope() {
63
                return null;
64
        }
65
66 26028 jmvivo
        public void setOID(Object oid) {
67
                this.loaded = false;
68
                super.setOID(oid);
69
        }
70 24447 jmvivo
71 26066 jmvivo
        public FeatureData getCopy() {
72
                this.load();
73
                return super.getCopy();
74
        }
75 26028 jmvivo
76 26066 jmvivo
77
78
79 23912 jmvivo
}