Revision 30 org.gvsig.sextante/trunk/org.gvsig.sextante.app/org.gvsig.sextante.app.algorithm/org.gvsig.sextante.app.algorithm.base/src/main/java/org/gvsig/sextante/app/algorithm/base/core/DALFeaturePersister.java

View differences:

DALFeaturePersister.java
24 24
import org.gvsig.fmap.dal.feature.EditableFeature;
25 25
import org.gvsig.fmap.dal.feature.Feature;
26 26
import org.gvsig.fmap.dal.feature.FeatureStore;
27
import org.gvsig.fmap.geom.GeometryLocator;
28
import org.gvsig.fmap.geom.GeometryManager;
27 29
import org.gvsig.fmap.geom.exception.CreateGeometryException;
28
import org.gvsig.fmap.geom.util.Converter;
30
import org.gvsig.fmap.geom.operation.GeometryOperationContext;
31
import org.gvsig.fmap.geom.operation.GeometryOperationException;
32
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
33
import org.gvsig.fmap.geom.operation.fromjts.FromJTS;
29 34

  
30 35
import com.vividsolutions.jts.geom.Geometry;
31 36

  
......
38 43
public class DALFeaturePersister {
39 44
	private FeatureStore              store             = null;
40 45
	private String[]                  fieldNames        = null;
46
	private GeometryManager           geometryManager   = null;
41 47
	
42 48
	/**
43 49
	 * Sets the output FeatureType
......
51 57
			store.edit();
52 58
		} catch (DataException e) {
53 59
		}
60
		geometryManager = GeometryLocator.getGeometryManager();
54 61
	}
55 62
	
56 63
	/**
......
60 67
	 * @throws CreateGeometryException
61 68
	 * @throws DataException
62 69
	 */
63
	public EditableFeature addFeature(Feature feature1, Feature feature2, Geometry newGeom) throws CreateGeometryException, DataException {
64
		org.gvsig.fmap.geom.Geometry newDalGeom = Converter.jtsToGeometry(newGeom);
70
	public EditableFeature addFeature(Feature feature1, Feature feature2, Geometry newGeom) 
71
		throws CreateGeometryException, DataException {
72
		
73
		org.gvsig.fmap.geom.Geometry newDalGeom = null;
74
			
75
		GeometryOperationContext ctx = new GeometryOperationContext();
76
		ctx.setAttribute(FromJTS.PARAM, newGeom);
77
		try {
78
			newDalGeom = (org.gvsig.fmap.geom.Geometry)geometryManager.invokeOperation(FromJTS.NAME, ctx);
79
		} catch (GeometryOperationNotSupportedException e) {
80
			Sextante.addErrorToLog(e);
81
			return null;
82
		} catch (GeometryOperationException e) {
83
			Sextante.addErrorToLog(e);
84
			return null;
85
		}
86
		
65 87
		EditableFeature feat = store.createNewFeature();
66 88
		
67 89
		int globalIndex = 0;
......
94 116
	 * @throws DataException
95 117
	 */
96 118
	public EditableFeature addFeature(Feature feature, Geometry newGeom) throws CreateGeometryException, DataException {
97
		org.gvsig.fmap.geom.Geometry newDalGeom = Converter.jtsToGeometry(newGeom);
119
		org.gvsig.fmap.geom.Geometry newDalGeom = null;
120
			
121
		GeometryOperationContext ctx = new GeometryOperationContext();
122
		ctx.setAttribute(FromJTS.PARAM, newGeom);
123
		try {
124
			newDalGeom = (org.gvsig.fmap.geom.Geometry)geometryManager.invokeOperation(FromJTS.NAME, ctx);
125
		} catch (GeometryOperationNotSupportedException e) {
126
			Sextante.addErrorToLog(e);
127
			return null;
128
		} catch (GeometryOperationException e) {
129
			Sextante.addErrorToLog(e);
130
			return null;
131
		}
132
		
98 133
		EditableFeature feat = store.createNewFeature(store.getDefaultFeatureType(), feature);
99 134
		feat.setGeometry("GEOMETRY", newDalGeom);
100 135
		store.insert(feat);

Also available in: Unified diff