svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.file / org.gvsig.fmap.dal.file.dbf / src / main / java / org / gvsig / fmap / dal / store / dbf / DBFFeatureProvider.java @ 40435
History | View | Annotate | Download (1.61 KB)
1 | 40435 | jjdelcerro | package org.gvsig.fmap.dal.store.dbf; |
---|---|---|---|
2 | |||
3 | import org.gvsig.fmap.dal.exception.DataException; |
||
4 | import org.gvsig.fmap.dal.exception.ReadRuntimeException; |
||
5 | import org.gvsig.fmap.dal.feature.FeatureType; |
||
6 | import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider; |
||
7 | import org.gvsig.fmap.dal.feature.spi.FeatureProvider; |
||
8 | import org.gvsig.fmap.geom.Geometry; |
||
9 | import org.gvsig.fmap.geom.primitive.Envelope; |
||
10 | |||
11 | public class DBFFeatureProvider extends DefaultFeatureProvider { |
||
12 | protected DBFStoreProvider store;
|
||
13 | protected boolean loading; |
||
14 | protected boolean loaded; |
||
15 | |||
16 | public DBFFeatureProvider(DBFStoreProvider store, FeatureType type) {
|
||
17 | super(type);
|
||
18 | this.store = store;
|
||
19 | loading = false;
|
||
20 | loaded = false;
|
||
21 | } |
||
22 | |||
23 | protected void load() { |
||
24 | if (loading || loaded || this.isNew()) { |
||
25 | return;
|
||
26 | } |
||
27 | loading = true;
|
||
28 | try {
|
||
29 | this.store.loadFeatureProviderByIndex(this); |
||
30 | } catch (DataException e) {
|
||
31 | throw new ReadRuntimeException("DBFFeatureProvider.load", e); |
||
32 | } finally {
|
||
33 | loading = false;
|
||
34 | loaded = true;
|
||
35 | } |
||
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 | public Geometry getDefaultGeometry() {
|
||
59 | return null; |
||
60 | } |
||
61 | |||
62 | public Envelope getDefaultEnvelope() {
|
||
63 | return null; |
||
64 | } |
||
65 | |||
66 | public void setOID(Object oid) { |
||
67 | this.loaded = false; |
||
68 | super.setOID(oid);
|
||
69 | } |
||
70 | |||
71 | public FeatureProvider getCopy() {
|
||
72 | this.load();
|
||
73 | return super.getCopy(); |
||
74 | } |
||
75 | |||
76 | |||
77 | |||
78 | |||
79 | } |