Revision 47436 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

View differences:

DBFFeatureProvider.java
32 32
import org.gvsig.fmap.geom.primitive.Envelope;
33 33

  
34 34
public class DBFFeatureProvider extends DefaultFeatureProvider {
35
	protected DBFStoreProvider store;
36
	protected boolean loading;
37
	protected boolean loaded;
38 35

  
39
	public DBFFeatureProvider(DBFStoreProvider store, FeatureType type) {
40
		super(type);
41
		this.store = store;
42
		loading = false;
43
		loaded = false;
44
	}
36
    protected DBFStoreProvider store;
37
    protected boolean loading;
38
    protected boolean loaded;
39
    private final FeatureType storeFeatureType;
45 40

  
46
	protected void load() {
47
		if (loading || loaded || this.isNew()) {
48
			return;
49
		}
50
		loading = true;
51
		try {
52
			this.store.loadFeatureProviderByIndex(this);
53
		} catch (DataException e) {
54
			throw new ReadRuntimeException(getNameForMessages(), this.getOID(), e);
55
		} finally {
56
			loading = false;
57
			loaded = true;
58
		}
59
	}
60
        
61
        protected String getNameForMessages() {
62
            // Solo con proposito de mostrar en mensajes de error.
63
            try {
64
                return this.store.getName();
65
            } catch(Exception ex) {
66
                return "unknown";
67
            }
41
    public DBFFeatureProvider(DBFStoreProvider store, FeatureType providerFeatureType, FeatureType storeFeatureType) {
42
        super(providerFeatureType);
43
        this.store = store;
44
        this.storeFeatureType = storeFeatureType;
45
        loading = false;
46
        loaded = false;
47
    }
48

  
49
    protected void load() {
50
        if (loading || loaded || this.isNew()) {
51
            return;
68 52
        }
53
        loading = true;
54
        try {
55
            this.store.loadFeatureProviderByIndex(this);
56
        } catch (DataException e) {
57
            throw new ReadRuntimeException(getNameForMessages(), this.getOID(), e);
58
        } finally {
59
            loading = false;
60
            loaded = true;
61
        }
62
    }
69 63

  
70
	public void set(int i, Object value) {
71
		this.load();
72
		super.set(i, value);
73
	}
64
    protected String getNameForMessages() {
65
        // Solo con proposito de mostrar en mensajes de error.
66
        try {
67
            return this.store.getName();
68
        } catch (Exception ex) {
69
            return "unknown";
70
        }
71
    }
74 72

  
75
	public void set(String name, Object value) {
76
		this.load();
77
		super.set(featureType.getIndex(name), value);
78
	}
73
    @Override
74
    public void set(int i, Object value) {
75
        this.load();
76
        super.set(i, value);
77
    }
79 78

  
80
	public Object get(int i) {
81
		this.load();
82
		return super.get(i);
83
	}
79
    @Override
80
    public void set(String name, Object value) {
81
        this.load();
82
        super.set(featureType.getIndex(name), value);
83
    }
84 84

  
85
	public Object get(String name) {
86
		this.load();
87
		return super.get(name);
88
	}
85
    @Override
86
    public Object get(int i) {
87
        this.load();
88
        return super.get(i);
89
    }
89 90

  
90
	public Geometry getDefaultGeometry() {
91
		return null;
92
	}
91
    @Override
92
    public Object get(String name) {
93
        this.load();
94
        return super.get(name);
95
    }
93 96

  
94
	public Envelope getDefaultEnvelope() {
95
		return null;
96
	}
97
    @Override
98
    public Geometry getDefaultGeometry() {
99
        return null;
100
    }
97 101

  
98
	public void setOID(Object oid) {
99
		this.loaded = false;
100
		super.setOID(oid);
101
	}
102
    @Override
103
    public Envelope getDefaultEnvelope() {
104
        return null;
105
    }
102 106

  
103
	public FeatureProvider getCopy() {
104
		this.load();
105
		return super.getCopy();
106
	}
107
    @Override
108
    public void setOID(Object oid) {
109
        this.loaded = false;
110
        super.setOID(oid);
111
    }
107 112

  
113
    @Override
114
    public FeatureProvider getCopy() {
115
        this.load();
116
        return super.getCopy();
117
    }
108 118

  
119
    public void setProviderFeatureType(FeatureType featureType) {
120
        this.featureType = featureType;
121
    }
109 122

  
123
    void setBroken(boolean b) {
124
        this.broken = b;
125
    }
110 126

  
127
    public FeatureType getStoreFeatureType() {
128
        return this.storeFeatureType;
129
    }
130

  
131
    public FeatureType getProviderFeatureType() {
132
        return this.getType();
133
    }
134

  
111 135
}

Also available in: Unified diff