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