Revision 44618

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/test/java/org/gvsig/fmap/dal/store/memory/MemoryStoreProviderTest.java
25 25
 * AUTHORS (In addition to CIT):
26 26
 * 2009 {Iver T.I.}   {Task}
27 27
 */
28

  
29 28
package org.gvsig.fmap.dal.store.memory;
30 29

  
30
import java.util.ArrayList;
31
import java.util.List;
31 32
import org.gvsig.fmap.dal.DALLocator;
32 33
import org.gvsig.fmap.dal.DataManager;
33 34
import org.gvsig.fmap.dal.DataStoreParameters;
......
37 38
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
38 39
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
39 40
import org.gvsig.fmap.dal.feature.EditableFeature;
40
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
41 41
import org.gvsig.fmap.dal.feature.EditableFeatureType;
42 42
import org.gvsig.fmap.dal.feature.Feature;
43 43
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
44 44
import org.gvsig.fmap.dal.feature.FeatureSet;
45 45
import org.gvsig.fmap.dal.feature.FeatureStore;
46
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
46 47
import org.gvsig.fmap.geom.Geometry;
47
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
48
import org.gvsig.fmap.geom.Geometry.TYPES;
49
import org.gvsig.fmap.geom.GeometryLocator;
50
import org.gvsig.fmap.geom.GeometryManager;
48
import org.gvsig.fmap.geom.GeometryUtils;
51 49
import org.gvsig.fmap.geom.exception.CreateGeometryException;
52
import org.gvsig.fmap.geom.primitive.Curve;
53 50
import org.gvsig.fmap.geom.primitive.Envelope;
54
import org.gvsig.fmap.geom.primitive.Surface;
55 51
import org.gvsig.tools.dispose.DisposableIterator;
56 52
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
57 53
import org.slf4j.Logger;
58 54
import org.slf4j.LoggerFactory;
59 55

  
60

  
61 56
/**
62 57
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
63 58
 */
64 59
public class MemoryStoreProviderTest extends AbstractLibraryAutoInitTestCase {
65
	protected Logger logger = LoggerFactory.getLogger(getClass());;
66
	protected static DataManager dataManager = null;
67
	protected static GeometryManager geomManager = null;
68 60

  
69
	protected static final String ID = "id";
70
	protected static final String GEOM = "geom";
71
	protected static final String IDSYM = "idsym";
72
	protected static final String LABEL = "label";
73
	protected static final String FEATUREID = "featureid";
61
    protected static final Logger LOGGER = LoggerFactory.getLogger(MemoryStoreProviderTest.class);
74 62

  
75
	protected void doSetUp() throws Exception {
76
		dataManager = DALLocator.getDataManager();
77
		geomManager = GeometryLocator.getGeometryManager();
78
	}
63
    protected static final String ID = "id";
64
    protected static final String GEOM = "geom";
65
    protected static final String IDSYM = "idsym";
66
    protected static final String LABEL = "label";
67
    protected static final String FEATUREID = "featureid";
79 68

  
80
	/*
81
	 * (non-Javadoc)
82
	 * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#getDefaultDataStoreParameters()
83
	 */
84
	public DataStoreParameters getDefaultDataStoreParameters()
85
	throws DataException {
86
		MemoryStoreParameters memoryParameters = null;
69
    @Override
70
    protected void doSetUp() throws Exception {
71
    }
87 72

  
88
		memoryParameters = (MemoryStoreParameters) dataManager
89
		.createStoreParameters(MemoryStoreProvider.NAME);
90
		return memoryParameters;
91
	}
73
    public OpenFeatureStoreParameters createMemoryStoreParameters() throws DataException {
74
        DataManager dataManager = DALLocator.getDataManager();
75
        MemoryStoreParameters memoryParameters = (MemoryStoreParameters) dataManager
76
                .createStoreParameters(MemoryStoreProvider.NAME);
77
        return memoryParameters;
78
    }
92 79

  
93
	public void testInitializeStore() throws Exception {
94
                DataStoreParameters params = this.getDefaultDataStoreParameters();
95
		FeatureStore store = (FeatureStore) dataManager.openStore(
96
                        params.getDataStoreName(),params
97
                );
80
    protected FeatureStore createStoreWithGeomField() throws ValidateDataParametersException, InitializeException, ProviderNotRegisteredException, DataException {
81
        DataManager dataManager = DALLocator.getDataManager();
82
        DataStoreParameters params = this.createMemoryStoreParameters();
83
        FeatureStore store = (FeatureStore) dataManager.openStore(
84
                params.getProviderName(),
85
                params
86
        );
87
        store.edit();
88
        EditableFeatureType editableFeatureType = store.getDefaultFeatureType().getEditable();
89
        editableFeatureType.add(ID, DataTypes.OBJECT)
90
                .setIsPrimaryKey(true)
91
                .setObjectClass(Object.class);
92
        editableFeatureType.add(IDSYM, DataTypes.OBJECT)
93
                .setObjectClass(Object.class);
94
        editableFeatureType.add(GEOM, DataTypes.GEOMETRY)
95
                .setGeometryType(Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM2D);
96
        editableFeatureType.add(LABEL, DataTypes.STRING);
97
        editableFeatureType.add(FEATUREID, DataTypes.OBJECT)
98
                .setObjectClass(Object.class);
98 99

  
99
		assertNotNull(store.getMetadataID());
100
		assertNotNull(store.getName());
101
		assertEquals(store.getEnvelope(), store.getDynValue("Envelope"));
102
		assertTrue(store.getFeatureCount() == 0);
103
		if (store.isLocksSupported()) {
104
			assertNotNull(store.getLocks());
105
		} else {
106
			assertNull(store.getLocks());
107
		}
108
		store.dispose();
109
	}
100
        store.update(editableFeatureType);
101
        store.finishEditing();
102
        return store;
103
    }
104
    
105
    protected FeatureStore createStoreWithoutGeomField() throws ValidateDataParametersException, InitializeException, ProviderNotRegisteredException, DataException {
106
        DataManager dataManager = DALLocator.getDataManager();
107
        DataStoreParameters params = this.createMemoryStoreParameters();
108
        FeatureStore store = (FeatureStore) dataManager.openStore(
109
                params.getProviderName(),
110
                params
111
        );
112
        store.edit();
113
        EditableFeatureType editableFeatureType = store.getDefaultFeatureType().getEditable();
114
        editableFeatureType.add(ID, DataTypes.OBJECT)
115
                .setIsPrimaryKey(true)
116
                .setObjectClass(Object.class);
117
        editableFeatureType.add(IDSYM, DataTypes.OBJECT)
118
                .setObjectClass(Object.class);
119
        editableFeatureType.add(LABEL, DataTypes.STRING);
120
        editableFeatureType.add(FEATUREID, DataTypes.OBJECT)
121
                .setObjectClass(Object.class);
110 122

  
111
	public void testAddFeatureType() throws DataException, ValidateDataParametersException{
112
		FeatureStore store = createEditableFeatureStore();
113
		FeatureAttributeDescriptor attributeDescriptor = store.getDefaultFeatureType().getAttributeDescriptor(ID);
114
		assertNotNull(attributeDescriptor);
115
		assertEquals(attributeDescriptor.getType(), DataTypes.OBJECT);
123
        store.update(editableFeatureType);
124
        store.finishEditing();
125
        return store;
126
    }
127
    
128
    protected FeatureStore createStoreWithGeomFieldFilled(List<Geometry> geoms) throws ValidateDataParametersException, InitializeException, ProviderNotRegisteredException, DataException {
129
        FeatureStore store = createStoreWithGeomField();
116 130

  
117
		store.dispose();
118
	}
131
        store.edit();
132
        int id = -1;
133
        geoms.add(GeometryUtils.createPoint(1, 1));
134
        geoms.add(GeometryUtils.createLine(Geometry.SUBTYPES.GEOM2D)
135
            .addVertex(0, 0)
136
            .addVertex(1, 0)
137
            .addVertex(1, 1)
138
            .addVertex(0, 1)
139
            .addVertex(0, 0));
140
        geoms.add(GeometryUtils.createPolygon(Geometry.SUBTYPES.GEOM2D)
141
            .addVertex(0, 0)
142
            .addVertex(1, 0)
143
            .addVertex(1, 1)
144
            .addVertex(0, 1)
145
            .addVertex(0, 0));
146
        
147
        EditableFeature feature;
148
        
149
        feature = store.createNewFeature();
150
        feature.set(ID, ++id);
151
        feature.set(LABEL, "Hi");
152
        feature.set(GEOM, geoms.get(id));
153
        store.insert(feature);
119 154

  
120
	protected FeatureStore createEditableFeatureStore() throws ValidateDataParametersException, InitializeException, ProviderNotRegisteredException, DataException{
121
                DataStoreParameters params = this.getDefaultDataStoreParameters();
122
		FeatureStore store = (FeatureStore) dataManager.openStore(
123
                        params.getDataStoreName(),params
124
                );
155
        feature = store.createNewFeature();
156
        feature.set(ID, ++id);
157
        feature.set(LABEL, "Hi");
158
        feature.set(GEOM, geoms.get(id));
159
        store.insert(feature);
125 160

  
126
		store.edit();
127 161

  
128
		EditableFeatureType editableFeatureType = store.getDefaultFeatureType().getEditable();
162
        feature = store.createNewFeature();
163
        feature.set(ID, ++id);
164
        feature.set(LABEL, "Hi");
165
        feature.set(GEOM, geoms.get(id));
166
        store.insert(feature);
129 167

  
130
		EditableFeatureAttributeDescriptor idDescriptor = editableFeatureType.add(ID, DataTypes.OBJECT).setObjectClass(Object.class);
131
		idDescriptor.setIsPrimaryKey(true);
132
		EditableFeatureAttributeDescriptor geometryDescriptor = 
133
			editableFeatureType.add(GEOM, DataTypes.GEOMETRY);
134
		geometryDescriptor.setGeometryType(TYPES.GEOMETRY);
135
		editableFeatureType.setDefaultGeometryAttributeName(GEOM);
168
        Envelope envelope = store.getEnvelope();
169
        assertNotNull(envelope);
136 170

  
137
		editableFeatureType.add(IDSYM, DataTypes.OBJECT).setObjectClass(Object.class);
138
		editableFeatureType.add(LABEL, DataTypes.STRING);
139
		EditableFeatureAttributeDescriptor featureIdDescriptor = 
140
			editableFeatureType.add(FEATUREID, DataTypes.OBJECT).setObjectClass(Object.class);		
141
		
142
		//editableFeatureType.setHasOID(true);
171
        store.finishEditing();
172
        return store;
173
    }
174
    
175
    protected FeatureStore createStoreWithoutGeomFieldFilled() throws ValidateDataParametersException, InitializeException, ProviderNotRegisteredException, DataException {
176
        FeatureStore store = createStoreWithoutGeomField();
143 177

  
144
		store.update(editableFeatureType);	
145
		store.finishEditing();
146
		return store;
147
	}
178
        store.edit();
179
        int id = 0;
180
        
181
        EditableFeature feature;
182
        
183
        feature = store.createNewFeature();
184
        feature.set(ID, ++id);
185
        feature.set(LABEL, "Hi");
186
        store.insert(feature);
148 187

  
149
	public void testAddFeature() throws DataException, ValidateDataParametersException, CreateGeometryException{
150
		FeatureStore store = createEditableFeatureStore();
188
        feature = store.createNewFeature();
189
        feature.set(ID, ++id);
190
        feature.set(LABEL, "Hi");
191
        store.insert(feature);
151 192

  
152
		store.edit();
153 193

  
154
		EditableFeature feature = store.createNewFeature().getEditable();
155
		feature.set(ID, "0");
156
		feature.set(GEOM, geomManager.createPoint(0, 0, SUBTYPES.GEOM2D));
194
        feature = store.createNewFeature();
195
        feature.set(ID, ++id);
196
        feature.set(LABEL, "Hi");
197
        store.insert(feature);
157 198

  
158
		store.insert(feature);
199
        Envelope envelope = store.getEnvelope();
200
        assertNull(envelope);
159 201

  
160
		Envelope envelope = store.getEnvelope();
161
		assertNotNull(envelope);
202
        store.finishEditing();
203
        return store;
204
    }
205
    
162 206

  
163
		store.finishEditing();
207
    public void testInitializeStore() throws Exception {
208
        DataManager dataManager = DALLocator.getDataManager();
209
        DataStoreParameters params = this.createMemoryStoreParameters();
210
        FeatureStore store = (FeatureStore) dataManager.openStore(
211
                params.getProviderName(),
212
                params
213
        );
214
        assertNotNull(store.getMetadataID());
215
        assertNotNull(store.getName());
216
        assertEquals(store.getEnvelope(), store.getDynValue("Envelope"));
217
        assertTrue(store.getFeatureCount() == 0);
218
        if (store.isLocksSupported()) {
219
            assertNotNull(store.getLocks());
220
        } else {
221
            assertNull(store.getLocks());
222
        }
223
        store.dispose();
224
    }
164 225

  
165
		FeatureSet featureSet = store.getFeatureSet();
166
		DisposableIterator it = featureSet.fastIterator();
167
		while (it.hasNext()){
168
			Feature feature2 = (Feature)it.next();
169
			assertEquals(feature.getType().get(0), feature2.getType().get(0));
170
			assertEquals(feature.get(0), feature2.get(0));
226
    public void testAddFeatureType() throws DataException, ValidateDataParametersException {
227
        FeatureStore store = createStoreWithGeomField();
228
        FeatureAttributeDescriptor attributeDescriptor = store.getDefaultFeatureType()
229
                .getAttributeDescriptor(ID);
230
        assertNotNull(attributeDescriptor);
231
        assertEquals(attributeDescriptor.getType(), DataTypes.OBJECT);
171 232

  
172
			assertEquals(feature.getType().get(1), feature2.getType().get(1));
173
			assertEquals(feature.get(1), feature2.get(1));
174
		}	
233
        store.dispose();
234
    }
175 235

  
176
		envelope = store.getEnvelope();
177
		assertNotNull(envelope);
236
    public void testAddFeaturesWithGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
237
        List<Geometry> geoms = new ArrayList<>();
238
        
239
        FeatureStore store = createStoreWithGeomFieldFilled(geoms);
240
        int n = -1;
241
        for (Feature feature : store.getFeatureSet()) {
242
            assertEquals(++n, feature.get(ID));
243
            assertEquals(geoms.get(n), feature.get(GEOM));
244
        }
178 245

  
179
		store.dispose();
180
	}
246
        store.edit();
247
        EditableFeature feature = store.createNewFeature();
248
        feature.set(ID, 4);
249
        feature.set(GEOM, GeometryUtils.createPolygon(Geometry.SUBTYPES.GEOM2D)
250
            .addVertex(0, 0)
251
            .addVertex(1, 0)
252
            .addVertex(1, 1)
253
            .addVertex(0, 1)
254
            .addVertex(0, 0)
255
        );
256
        store.insert(feature);
257
        store.finishEditing();
258
        assertEquals(4, store.getFeatureCount());
259
        
260
        store.dispose();
261
    }
181 262

  
182
	public void testAddFeatures() throws DataException, ValidateDataParametersException, CreateGeometryException{
183
		FeatureStore store = createEditableFeatureStore();
263
    public void testRemoveFeaturesWithGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
264
        List<Geometry> geoms = new ArrayList<>();
265
        FeatureStore store = createStoreWithGeomFieldFilled(geoms);
184 266

  
185
		store.edit();
267
        Feature f;
268
        
269
        store.edit();
270
        FeatureSet featureSet = store.getFeatureSet();
271
        DisposableIterator it = featureSet.fastIterator();
272
        it.next();
273
        f = (Feature) it.next();
274
        store.delete(f);
275
        store.finishEditing();
186 276

  
187
		EditableFeature feature = store.createNewFeature().getEditable();
188
		feature.set(ID, "0");
189
		feature.set(GEOM, geomManager.createPoint(0, 0, SUBTYPES.GEOM2D));
277
        assertEquals(2, store.getFeatureCount());
278
        store.dispose();
279
    }
190 280

  
191
		// One
192
		store.insert(feature);
281
    public void testUpdateFeaturesWithGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
282
        List<Geometry> geoms = new ArrayList<>();
283
        FeatureStore store = createStoreWithGeomFieldFilled(geoms);
193 284

  
194
		EditableFeature feature2 = store.createNewFeature().getEditable();
195
		feature2.set(ID, "1");
196
		Curve curve =  geomManager.createCurve(Geometry.SUBTYPES.GEOM2D);
197
		curve.addVertex(0,0);
198
		curve.addVertex(1,0);
199
		curve.addVertex(1,1);
200
		curve.addVertex(0,1);
201
		curve.addVertex(0,0);
202
		feature2.set(GEOM, curve);
285
        store.edit();
286
        FeatureSet set = store.getFeatureSet();
287
        for (Feature feature : set) {
288
            EditableFeature ef = feature.getEditable();
289
            ef.set(LABEL, "Bye");
290
            set.update(ef);
291
        }
292
        store.finishEditing();
203 293

  
204
		// Two
205
		store.insert(feature2);
294
        for (Feature feature : store.getFeatureSet()) {
295
            assertEquals("Bye", feature.get(LABEL));
296
        }
297
        store.dispose();
298
    }
206 299

  
207
		EditableFeature feature3 = store.createNewFeature().getEditable();
208
		feature3.set(ID, "2");
209
		Surface surface =  geomManager.createSurface(Geometry.SUBTYPES.GEOM2D);
210
		surface.addVertex(0,0);
211
		surface.addVertex(1,0);
212
		surface.addVertex(1,1);
213
		surface.addVertex(0,1);
214
		surface.addVertex(0,0);
215
		feature3.set(GEOM, surface);
300
    public void testAddFeaturesWithoutGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
301
        FeatureStore store = createStoreWithoutGeomFieldFilled();
302
        int n = 0;
303
        for (Feature feature : store.getFeatureSet()) {
304
            assertEquals(++n, feature.get(ID));
305
        }
216 306

  
217
		//Three
218
		store.insert(feature3);
307
        store.edit();
308
        EditableFeature feature = store.createNewFeature();
309
        feature.set(ID, 4);
310
        store.insert(feature);
311
        store.finishEditing();
312
        assertEquals(4, store.getFeatureCount());
313
        
314
        store.dispose();
315
    }
219 316

  
220
		Envelope envelope = store.getEnvelope();
221
		assertNotNull(envelope);
317
    public void testRemoveFeaturesWithoutGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
318
        FeatureStore store = createStoreWithoutGeomFieldFilled();
222 319

  
223
		store.finishEditing();
320
        Feature f;
321
        
322
        store.edit();
323
        FeatureSet featureSet = store.getFeatureSet();
324
        DisposableIterator it = featureSet.fastIterator();
325
        it.next();
326
        f = (Feature) it.next();
327
        store.delete(f);
328
        store.finishEditing();
224 329

  
225
		FeatureSet featureSet = store.getFeatureSet();
226
		DisposableIterator it = featureSet.fastIterator();
330
        assertEquals(2, store.getFeatureCount());
331
        store.dispose();
332
    }
227 333

  
228
		//Count the features in the set
229
		int i=0;
230
		while (it.hasNext()){
231
			Feature feat = (Feature)it.next();
232
			i++;
233
		}	
334
    public void testUpdateFeaturesWithoutGeom() throws DataException, ValidateDataParametersException, CreateGeometryException {
335
        FeatureStore store = createStoreWithoutGeomFieldFilled();
234 336

  
235
		//Are all three inside?
236
		assertEquals(3,i);
337
        store.edit();
338
        FeatureSet set = store.getFeatureSet();
339
        for (Feature feature : set) {
340
            EditableFeature ef = feature.getEditable();
341
            ef.set(LABEL, "Bye");
342
            set.update(ef);
343
        }
344
        store.finishEditing();
237 345

  
238
		envelope = store.getEnvelope();
239
		assertNotNull(envelope);
346
        for (Feature feature : store.getFeatureSet()) {
347
            assertEquals("Bye", feature.get(LABEL));
348
        }
349
        store.dispose();
350
    }
240 351

  
241
		// Editing other time
242
		store.edit();
243
		EditableFeature feature4 = store.createNewFeature().getEditable();
244
		feature4.set(ID, "4");
245
		surface =  geomManager.createSurface(Geometry.SUBTYPES.GEOM2D);
246
		surface.addVertex(0,0);
247
		surface.addVertex(1,0);
248
		surface.addVertex(1,1);
249
		surface.addVertex(0,1);
250
		surface.addVertex(0,0);
251
		feature4.set(GEOM, surface);
252

  
253
		//four
254
		store.insert(feature4);
255

  
256
		store.finishEditing();
257
		
258
		//Are all four inside?
259
		assertEquals(4,store.getFeatureCount());
260

  
261
		store.dispose();
262
	}
263

  
264
	public void testRemoveFeatures() throws DataException, ValidateDataParametersException, CreateGeometryException{
265
		FeatureStore store = createEditableFeatureStore();
266

  
267
		store.edit();
268

  
269
		EditableFeature feature = store.createNewFeature().getEditable();
270
		feature.set(ID, "0");
271
		feature.set(GEOM, geomManager.createPoint(0, 0, SUBTYPES.GEOM2D));
272

  
273
		// One
274
		store.insert(feature);
275

  
276
		EditableFeature feature2 = store.createNewFeature().getEditable();
277
		feature2.set(ID, "1");
278
		Curve curve =  geomManager.createCurve(Geometry.SUBTYPES.GEOM2D);
279
		curve.addVertex(0,0);
280
		curve.addVertex(1,0);
281
		curve.addVertex(1,1);
282
		curve.addVertex(0,1);
283
		curve.addVertex(0,0);
284
		feature2.set(GEOM, curve);
285

  
286
		// Two
287
		store.insert(feature2);
288

  
289
		EditableFeature feature3 = store.createNewFeature().getEditable();
290
		feature3.set(ID, "2");
291
		Surface surface =  geomManager.createSurface(Geometry.SUBTYPES.GEOM2D);
292
		surface.addVertex(0,0);
293
		surface.addVertex(1,0);
294
		surface.addVertex(1,1);
295
		surface.addVertex(0,1);
296
		surface.addVertex(0,0);
297
		feature3.set(GEOM, surface);
298

  
299
		//Three
300
		store.insert(feature3);
301

  
302
		Envelope envelope = store.getEnvelope();
303
		assertNotNull(envelope);
304

  
305
		store.finishEditing();
306

  
307
		// Editing other time and remove the second one
308
		store.edit();
309
			
310

  
311
		FeatureSet featureSet = store.getFeatureSet();
312
		DisposableIterator it = featureSet.fastIterator();
313

  
314
		//Count the features in the set
315
		int i=1;
316
		Feature addedFeature2 = null;
317
		while (it.hasNext()){
318
			Feature feat = (Feature)it.next();
319
			if (i == 2){
320
				addedFeature2 = feat;
321
			}			
322
			i++;
323
		}	
324
		
325
		store.delete(addedFeature2);
326

  
327
		store.finishEditing();
328
		//Are two inside?
329
		assertEquals(2,store.getFeatureCount());
330

  
331
		store.dispose();
332
	}
333
	
334
	public void testUpdateFeatures() throws DataException, ValidateDataParametersException, CreateGeometryException{
335
		FeatureStore store = createEditableFeatureStore();
336

  
337
		store.edit();
338

  
339
		EditableFeature feature = store.createNewFeature().getEditable();
340
		feature.set(ID, "0");
341
		feature.set(GEOM, geomManager.createPoint(0, 0, SUBTYPES.GEOM2D));
342
		feature.set(LABEL, "Hi");		
343
		store.insert(feature);
344
		store.finishEditing();
345

  
346
		// Editing other time and update 
347
		store.edit();
348
			
349
		FeatureSet featureSet = store.getFeatureSet();
350
		DisposableIterator it = featureSet.fastIterator();
351
		
352
		EditableFeature editableFeature = null;
353
		while (it.hasNext()){			
354
			Feature feat = (Feature)it.next();
355
			editableFeature = feat.getEditable();
356
			editableFeature.set(LABEL, "Bye");			
357
		}
358
		
359
		store.update(editableFeature);
360
		
361
		store.finishEditing();
362
		
363
		//Check the value
364
		featureSet = store.getFeatureSet();
365
		it = featureSet.fastIterator();
366

  
367
		while (it.hasNext()){
368
			Feature feat = (Feature)it.next();
369
			assertEquals("Bye", feat.get(LABEL));
370
		}	
371
		
372
		store.dispose();
373
	}
374 352
}
375

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeature.java
491 491
    public Envelope getDefaultEnvelope() {
492 492
        Envelope envelope = this.data.getDefaultEnvelope();
493 493
        if( envelope == null ) {
494
            int i = this.data.getType().getDefaultGeometryAttributeIndex();
495
            if( i<0 ) {
496
                return null;
497
            }
494 498
            Geometry geom = this.getDefaultGeometry();
495 499
            if( geom!=null ) {
496 500
                envelope = geom.getEnvelope();
......
504 508
    	Geometry geom = this.data.getDefaultGeometry();
505 509
        if( geom == null ) {
506 510
            int i = this.data.getType().getDefaultGeometryAttributeIndex();
511
            if( i<0 ) {
512
                return null;
513
            }
507 514
            Object x = this.get(i);
508 515
            if( x instanceof Geometry ) {
509 516
                geom = (Geometry) x;
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/store/memory/MemoryStoreParameters.java
88 88
				
89 89
	    	}
90 90
	    }
91
	
91

  
92
        @Override
93
        public String getProviderName() {
94
		return MemoryStoreProvider.NAME;
95
        }
96

  
97

  
92 98
	public String getDataStoreName() {
93 99
		return MemoryStoreProvider.NAME;
94 100
	}

Also available in: Unified diff