Statistics
| Revision:

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