Revision 68 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderServices.java

View differences:

DefaultEditingProviderServices.java
7 7
package org.gvsig.vectorediting.lib.impl;
8 8

  
9 9
import java.awt.geom.Point2D;
10
import java.util.Iterator;
10 11

  
11 12
import org.gvsig.andami.messages.NotificationManager;
12 13
import org.gvsig.editing.EditingNotification;
......
14 15
import org.gvsig.fmap.dal.exception.DataException;
15 16
import org.gvsig.fmap.dal.feature.EditableFeature;
16 17
import org.gvsig.fmap.dal.feature.Feature;
18
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
17 19
import org.gvsig.fmap.dal.feature.FeatureStore;
20
import org.gvsig.fmap.dal.feature.FeatureType;
18 21
import org.gvsig.fmap.geom.Geometry;
19 22
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
20 23
import org.gvsig.fmap.geom.Geometry.TYPES;
......
266 269
        .getGeomType();
267 270
	}
268 271

  
272
	public EditableFeature getFeatureCopyWithoutPK(FeatureStore featureStore, Feature feature)
273
			throws DataException {
274
		EditableFeature editableFeature = featureStore.createNewFeature(
275
				feature.getType(), true);
276

  
277
		FeatureType type_src = feature.getType();
278
		@SuppressWarnings("rawtypes")
279
		Iterator iterator = type_src.iterator();
280
		FeatureType type_dest = editableFeature.getType();
281

  
282
		while (iterator.hasNext()) {
283
			FeatureAttributeDescriptor attribute_src = (FeatureAttributeDescriptor) iterator
284
					.next();
285

  
286
			FeatureAttributeDescriptor attribute_dest = type_dest
287
					.getAttributeDescriptor(attribute_src.getName());
288
			if (attribute_dest != null) {
289
				if (!attribute_dest.isPrimaryKey()) {
290
					editableFeature.set(attribute_dest.getIndex(),
291
							feature.get(attribute_src.getIndex()));
292
				}
293
			}
294
		}
295
		return editableFeature;
296
	}
297

  
298

  
269 299
}

Also available in: Unified diff