Revision 39411 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStoreTransforms.java

View differences:

DefaultFeatureStoreTransforms.java
8 8

  
9 9
import org.gvsig.fmap.dal.exception.DataException;
10 10
import org.gvsig.fmap.dal.feature.EditableFeature;
11
import org.gvsig.fmap.dal.feature.EditableFeatureType;
11 12
import org.gvsig.fmap.dal.feature.Feature;
12 13
import org.gvsig.fmap.dal.feature.FeatureStore;
13 14
import org.gvsig.fmap.dal.feature.FeatureStoreNotification;
......
174 175
		FeatureProvider targetData;
175 176
		EditableFeature target;
176 177
		ListIterator iterator = stack.listIterator(stack.size());
178
		FeatureType tft = null;
177 179

  
178 180

  
179 181
		while (iterator.hasPrevious()) {
180 182
			item = (TransformTemporalListElement) iterator.previous();
181
			targetData = this.store
182
					.createDefaultFeatureProvider(item.targetFeatureType);
183
			
184
			tft = item.targetFeatureType;
185
			if (tft instanceof EditableFeatureType) {
186
			    /*
187
			     * Must be non-editable to create 
188
			     * DefaultFeatureProvider
189
			     */
190
			    tft = ((EditableFeatureType) tft).getNotEditableCopy();
191
			}
192
			
193
			targetData = this.store.createDefaultFeatureProvider(tft);
183 194
			targetData.setOID(source.getData().getOID());
184 195
			targetData.setNew(false);
185 196
			target = (new DefaultEditableFeature(this.store, targetData))
......
231 242
		}
232 243
		this.store = (DefaultFeatureStore) featureStore;
233 244
	}
245
	
246
	   
247
	public void setStoreForClone(FeatureStore featureStore) {
248
	        this.store = (DefaultFeatureStore) featureStore;
249
	}
234 250

  
235 251
	public boolean isTransformsOriginalValues() {
236 252
		if (this.isTramsformValues == null) {
......
325 341
		}
326 342
		return false;
327 343
	}
344
	
345
	public Object clone() throws CloneNotSupportedException {
346
	    
347
	    DefaultFeatureStoreTransforms cloned = (DefaultFeatureStoreTransforms) super.clone();
348
	    cloned.transforms = new ArrayList();
349
	    int n = this.transforms.size();
350
	    for (int i=0; i<n; i++) {
351
	        cloned.transforms.add(((FeatureStoreTransform) this.transforms.get(i)).clone());
352
	    }
353
	    cloned.lastTransformStack = null;
354
	    
355
	    return cloned;
356
	}
328 357

  
329 358
}

Also available in: Unified diff