Revision 39411

View differences:

branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/FeatureStore.java
17 17
import org.gvsig.fmap.geom.primitive.Envelope;
18 18
import org.gvsig.tools.dispose.DisposableIterator;
19 19
import org.gvsig.tools.dynobject.DynObject;
20
import org.gvsig.tools.lang.Cloneable;
20 21
import org.gvsig.tools.observer.Observer;
21 22
import org.gvsig.tools.undo.UndoRedoStack;
22 23

  
......
47 48
 * </ul>
48 49
 * 
49 50
 */
50
public interface FeatureStore extends DataStore, UndoRedoStack {
51
public interface FeatureStore extends DataStore, UndoRedoStack, Cloneable {
51 52

  
52 53
    public static final String METADATA_DEFINITION_NAME = "FeatureStore";
53 54

  
branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/FeatureStoreTransforms.java
3 3
import java.util.Iterator;
4 4

  
5 5
import org.gvsig.fmap.dal.exception.DataException;
6
import org.gvsig.tools.lang.Cloneable;
6 7

  
7 8
/**
8 9
 * This interface represents a container for store transforms.
......
11 12
 * adding and removing transforms.
12 13
 *
13 14
 */
14
public interface FeatureStoreTransforms {
15
public interface FeatureStoreTransforms extends Cloneable {
15 16

  
16 17
	/**
17 18
	 * Returns the FeatureStoreTransform given its index.
branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/FeatureStoreTransform.java
32 32
import org.gvsig.fmap.dal.exception.DataException;
33 33
import org.gvsig.tools.dynobject.DynObject;
34 34
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
35
import org.gvsig.tools.lang.Cloneable;
35 36
import org.gvsig.tools.persistence.Persistent;
36 37

  
37 38
/**
......
42 43
 * @author jmvivo
43 44
 *
44 45
 */
45
public interface FeatureStoreTransform extends Persistent {
46
public interface FeatureStoreTransform extends Persistent, Cloneable {
46 47

  
47 48
	/**
48 49
	 * Returns the default {@link FeatureType}.
branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/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
}
branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/AbstractFeatureStoreTransform.java
157 157
			throws DynFieldNotFoundException {
158 158
		throw new DynFieldNotFoundException(name, "transform");
159 159
	}
160
	
161
	  
162
	public Object clone() throws CloneNotSupportedException {
163
	    return super.clone();
164
	    
165
	}
160 166

  
161 167
}
branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/exception/CloneException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2012 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.fmap.dal.exception;
24

  
25

  
26
/**
27
 * @author jldominguez
28
 *
29
 */
30
public class CloneException extends DataRuntimeException {
31

  
32
    /**
33
     * 
34
     */
35
    private static final long serialVersionUID = -6605425077113421529L;
36

  
37
    /**
38
     * 
39
     * @param cause
40
     */
41
    public CloneException(Throwable cause) {
42
        
43
        super("Cannot clone object.", cause,
44
            "_Cannot_clone_object", serialVersionUID);
45
    }
46

  
47
}
branches/v2_0_0_prep/extensions/org.gvsig.daltransform.app.mainplugin/src/main/java/org/gvsig/daltransform/swing/impl/DataTransformSelectionAction.java
34 34

  
35 35
import org.gvsig.andami.PluginServices;
36 36
import org.gvsig.daltransform.swing.DataTransformGui;
37
import org.gvsig.fmap.crs.CRSFactory;
38 37
import org.gvsig.fmap.dal.exception.DataException;
39 38
import org.gvsig.fmap.dal.feature.FeatureStore;
40 39
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
......
65 64
			
66 65
		//Gets the selected FeatureStore
67 66
		FeatureStore featureStore = dataTransformWizard.getFeatureStore();
68
				
67
		FeatureStore cloned_store = null;
68
		try {
69
            cloned_store = (FeatureStore) featureStore.clone();
70
        } catch (CloneNotSupportedException e1) {
71
            /*
72
             * FeatureStore always implements the clone method
73
             */
74
        }
75

  
69 76
		try {			
70 77
			//Gets the transform
71
			FeatureStoreTransform featureStoreTransform = featureTransformGui.createFeatureStoreTransform(featureStore);
78
			FeatureStoreTransform featureStoreTransform = featureTransformGui.createFeatureStoreTransform(cloned_store);
72 79
			
73 80
			// Apply the transformation
74
			featureStore.getTransforms().add(featureStoreTransform);
81
			cloned_store.getTransforms().add(featureStoreTransform);
75 82
			
76 83
			//Create and load a new layer...
77 84
			if (dataTransformWizard.isLayerLoaded()){
78 85
			    MapContextManager manager = MapContextLocator.getMapContextManager();
79 86
			    FLayer layer = manager.createLayer(
80 87
			        featureTransformGui.toString(),
81
			        featureStore);
88
			        cloned_store);
82 89
				dataTransformWizard.getMapContext().getLayers().addLayer(layer);
83 90
				layer.dispose();
84 91
			}

Also available in: Unified diff