Revision 225
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/core/CompositeSourceOutputChannel.java | ||
---|---|---|
27 | 27 |
* @author <a href="mailto:nachobrodin@gmail.com">Nacho Brodin</a> |
28 | 28 |
* @author gvSIG Team |
29 | 29 |
* @deprecated use |
30 |
* org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceOutputChannel |
|
30 |
* org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceIOutputChannel
|
|
31 | 31 |
* instead |
32 | 32 |
*/ |
33 | 33 |
public class CompositeSourceOutputChannel extends |
34 |
org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceOutputChannel { |
|
34 |
org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceIOutputChannel {
|
|
35 | 35 |
|
36 | 36 |
public CompositeSourceOutputChannel(Object parameters) { |
37 | 37 |
super(parameters); |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.intersection/src/main/java/org/gvsig/geoprocess/algorithm/intersection/IntersectionAlgorithm.java | ||
---|---|---|
31 | 31 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
32 | 32 |
import org.gvsig.fmap.dal.feature.FeatureType; |
33 | 33 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
34 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
34 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
35 | 35 |
|
36 | 36 |
/** |
37 | 37 |
* Intersection algorithm |
... | ... | |
105 | 105 |
boolean selectedGeom) throws DataException { |
106 | 106 |
FeatureStore storeLayer = null; |
107 | 107 |
FeatureStore storeOverlay = null; |
108 |
if(layer instanceof gvVectorLayer &&
|
|
109 |
overlay instanceof gvVectorLayer) {
|
|
110 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
111 |
storeOverlay = ((gvVectorLayer)overlay).getFeatureStore();
|
|
108 |
if(layer instanceof FlyrVectIVectorLayer &&
|
|
109 |
overlay instanceof FlyrVectIVectorLayer) {
|
|
110 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
111 |
storeOverlay = ((FlyrVectIVectorLayer)overlay).getFeatureStore();
|
|
112 | 112 |
} else |
113 | 113 |
return; |
114 | 114 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.clip/src/main/java/org/gvsig/geoprocess/algorithm/clip/ClipAlgorithm.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.feature.FeatureType; |
33 | 33 |
import org.gvsig.geoprocess.algorithm.base.core.ScalableUnionOperation; |
34 | 34 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
35 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
35 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
36 | 36 |
|
37 | 37 |
/** |
38 | 38 |
* Clip algorithm |
... | ... | |
90 | 90 |
} |
91 | 91 |
|
92 | 92 |
FeatureStore storeLayer = null; |
93 |
if(layer instanceof gvVectorLayer && clippingGeometry != null)
|
|
94 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
93 |
if(layer instanceof FlyrVectIVectorLayer && clippingGeometry != null)
|
|
94 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
95 | 95 |
else |
96 | 96 |
return false; |
97 | 97 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.convexhull/src/main/java/org/gvsig/geoprocess/algorithm/convexhull/ConvexHullAlgorithm.java | ||
---|---|---|
37 | 37 |
import org.gvsig.fmap.geom.Geometry; |
38 | 38 |
import org.gvsig.geoprocess.algorithm.base.util.GeometryUtil; |
39 | 39 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
41 | 41 |
import org.gvsig.tools.dispose.DisposableIterator; |
42 | 42 |
|
43 | 43 |
/** |
... | ... | |
78 | 78 |
|
79 | 79 |
FeatureStore store = null; |
80 | 80 |
|
81 |
if(input instanceof gvVectorLayer)
|
|
82 |
store = ((gvVectorLayer)input).getFeatureStore();
|
|
81 |
if(input instanceof FlyrVectIVectorLayer)
|
|
82 |
store = ((FlyrVectIVectorLayer)input).getFeatureStore();
|
|
83 | 83 |
else |
84 | 84 |
return false; |
85 | 85 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.dissolve/src/main/java/org/gvsig/geoprocess/algorithm/dissolve/DissolveAlgorithm.java | ||
---|---|---|
37 | 37 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
38 | 38 |
import org.gvsig.fmap.dal.feature.FeatureType; |
39 | 39 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
41 | 41 |
|
42 | 42 |
/** |
43 | 43 |
* Dissolve algorithm |
... | ... | |
102 | 102 |
loadSummary(functionList); |
103 | 103 |
|
104 | 104 |
FeatureStore storeLayer = null; |
105 |
if(layer instanceof gvVectorLayer)
|
|
106 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
105 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
106 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
107 | 107 |
else |
108 | 108 |
return false; |
109 | 109 |
|
... | ... | |
202 | 202 |
IVectorLayer output = getNewVectorLayer(sextanteLayerLabel, |
203 | 203 |
sextanteLayerName, |
204 | 204 |
shapeType, types, attrNames); |
205 |
return ((gvVectorLayer)output).getFeatureStore();
|
|
205 |
return ((FlyrVectIVectorLayer)output).getFeatureStore();
|
|
206 | 206 |
} catch (UnsupportedOutputChannelException e) { |
207 | 207 |
Sextante.addErrorToLog(e); |
208 | 208 |
} catch (GeoAlgorithmExecutionException e) { |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.union/src/main/java/org/gvsig/geoprocess/algorithm/union/UnionAlgorithm.java | ||
---|---|---|
40 | 40 |
import org.gvsig.geoprocess.algorithm.difference.DifferenceOperation; |
41 | 41 |
import org.gvsig.geoprocess.algorithm.intersection.IntersectionOperation; |
42 | 42 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
43 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
43 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
44 | 44 |
|
45 | 45 |
/** |
46 | 46 |
* Union algorithm |
... | ... | |
95 | 95 |
|
96 | 96 |
FeatureStore storeLayer1 = null; |
97 | 97 |
FeatureStore storeLayer2 = null; |
98 |
if(layer1 instanceof gvVectorLayer &&
|
|
99 |
layer2 instanceof gvVectorLayer) {
|
|
100 |
storeLayer1 = ((gvVectorLayer)layer1).getFeatureStore();
|
|
101 |
storeLayer2 = ((gvVectorLayer)layer2).getFeatureStore();
|
|
98 |
if(layer1 instanceof FlyrVectIVectorLayer &&
|
|
99 |
layer2 instanceof FlyrVectIVectorLayer) {
|
|
100 |
storeLayer1 = ((FlyrVectIVectorLayer)layer1).getFeatureStore();
|
|
101 |
storeLayer2 = ((FlyrVectIVectorLayer)layer2).getFeatureStore();
|
|
102 | 102 |
} else |
103 | 103 |
return false; |
104 | 104 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.buffer/src/main/java/org/gvsig/geoprocess/algorithm/buffer/BufferAlgorithm.java | ||
---|---|---|
37 | 37 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
38 | 38 |
import org.gvsig.fmap.dal.feature.FeatureType; |
39 | 39 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
41 | 41 |
|
42 | 42 |
/** |
43 | 43 |
* Geoprocess that computes a buffer area around each feature's geometry of the |
... | ... | |
119 | 119 |
} |
120 | 120 |
|
121 | 121 |
FeatureStore storeLayer = null; |
122 |
if(layer instanceof gvVectorLayer)
|
|
123 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
122 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
123 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
124 | 124 |
else |
125 | 125 |
return false; |
126 | 126 |
|
... | ... | |
191 | 191 |
IVectorLayer output = getNewVectorLayer(sextanteLayerLabel, |
192 | 192 |
sextanteLayerName, |
193 | 193 |
shapeType, types, attrNames); |
194 |
return ((gvVectorLayer)output).getFeatureStore();
|
|
194 |
return ((FlyrVectIVectorLayer)output).getFeatureStore();
|
|
195 | 195 |
} catch (UnsupportedOutputChannelException e) { |
196 | 196 |
Sextante.addErrorToLog(e); |
197 | 197 |
} catch (GeoAlgorithmExecutionException e) { |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.base/src/main/java/org/gvsig/geoprocess/algorithm/base/core/ScalableUnionOperation.java | ||
---|---|---|
40 | 40 |
import org.gvsig.geoprocess.algorithm.base.util.GeometryUtil; |
41 | 41 |
import org.gvsig.geoprocess.algorithm.base.util.JTSFacade; |
42 | 42 |
import org.gvsig.geoprocess.algorithm.base.visitor.exception.VisitorException; |
43 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
43 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
44 | 44 |
import org.gvsig.tools.dispose.DisposableIterator; |
45 | 45 |
|
46 | 46 |
/** |
... | ... | |
148 | 148 |
public static org.gvsig.fmap.geom.Geometry joinLayerGeometries(IVectorLayer input) throws WrongParameterTypeException, WrongParameterIDException, NullParameterValueException { |
149 | 149 |
FeatureStore store = null; |
150 | 150 |
|
151 |
if(input instanceof gvVectorLayer)
|
|
152 |
store = ((gvVectorLayer)input).getFeatureStore();
|
|
151 |
if(input instanceof FlyrVectIVectorLayer)
|
|
152 |
store = ((FlyrVectIVectorLayer)input).getFeatureStore();
|
|
153 | 153 |
else |
154 | 154 |
return null; |
155 | 155 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.difference/src/main/java/org/gvsig/geoprocess/algorithm/difference/DifferenceAlgorithm.java | ||
---|---|---|
33 | 33 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
34 | 34 |
import org.gvsig.geoprocess.algorithm.base.core.ScalableUnionOperation; |
35 | 35 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
36 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
36 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
37 | 37 |
|
38 | 38 |
/** |
39 | 39 |
* Difference algorithm |
... | ... | |
87 | 87 |
} |
88 | 88 |
|
89 | 89 |
FeatureStore storeLayer = null; |
90 |
if(layer instanceof gvVectorLayer)
|
|
91 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
90 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
91 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
92 | 92 |
else |
93 | 93 |
return false; |
94 | 94 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.reproject/src/main/java/org/gvsig/geoprocess/algorithm/reproject/ReprojectAlgorithm.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
33 | 33 |
import org.gvsig.fmap.dal.feature.FeatureType; |
34 | 34 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
35 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
35 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
36 | 36 |
|
37 | 37 |
/** |
38 | 38 |
* Reproject algorithm |
... | ... | |
81 | 81 |
String dstProj = m_Parameters.getParameterValueAsString(DST_PROJECTION); |
82 | 82 |
|
83 | 83 |
FeatureStore storeLayer = null; |
84 |
if(layer instanceof gvVectorLayer)
|
|
85 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
84 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
85 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
86 | 86 |
else |
87 | 87 |
return false; |
88 | 88 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.spatialjoin/src/main/java/org/gvsig/geoprocess/algorithm/spatialjoin/IntersectsSpatialJoinOperation.java | ||
---|---|---|
35 | 35 |
import org.gvsig.fmap.geom.primitive.Envelope; |
36 | 36 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
37 | 37 |
import org.gvsig.geoprocess.algorithm.dissolve.Summary; |
38 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
38 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
39 | 39 |
import org.gvsig.tools.dispose.DisposableIterator; |
40 | 40 |
|
41 | 41 |
/** |
... | ... | |
49 | 49 |
private FeatureIndex index = null; |
50 | 50 |
private Summary summary = null; |
51 | 51 |
|
52 |
public IntersectsSpatialJoinOperation(gvVectorLayer targetLayer, String indexName, Summary summary) {
|
|
52 |
public IntersectsSpatialJoinOperation(FlyrVectIVectorLayer targetLayer, String indexName, Summary summary) {
|
|
53 | 53 |
FeatureIndexes indexes = targetLayer.getFeatureStore().getIndexes(); |
54 | 54 |
index = indexes.getFeatureIndex(indexName); |
55 | 55 |
this.summary = summary; |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.spatialjoin/src/main/java/org/gvsig/geoprocess/algorithm/spatialjoin/SpatiallyIndexedSpatialJoinOperation.java | ||
---|---|---|
36 | 36 |
import org.gvsig.fmap.geom.primitive.Envelope; |
37 | 37 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
38 | 38 |
import org.gvsig.geoprocess.algorithm.base.util.GeometryUtil; |
39 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
39 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
40 | 40 |
import org.gvsig.tools.dispose.DisposableIterator; |
41 | 41 |
|
42 | 42 |
/** |
... | ... | |
62 | 62 |
*/ |
63 | 63 |
private FeatureIndex index = null; |
64 | 64 |
|
65 |
public SpatiallyIndexedSpatialJoinOperation(gvVectorLayer targetLayer, String indexName) {
|
|
65 |
public SpatiallyIndexedSpatialJoinOperation(FlyrVectIVectorLayer targetLayer, String indexName) {
|
|
66 | 66 |
FeatureIndexes indexes = targetLayer.getFeatureStore().getIndexes(); |
67 | 67 |
index = indexes.getFeatureIndex(indexName); |
68 | 68 |
} |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.spatialjoin/src/main/java/org/gvsig/geoprocess/algorithm/spatialjoin/SpatialJoinAlgorithm.java | ||
---|---|---|
42 | 42 |
import org.gvsig.geoprocess.algorithm.dissolve.IDissolveRule; |
43 | 43 |
import org.gvsig.geoprocess.algorithm.dissolve.Summary; |
44 | 44 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
45 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
45 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
46 | 46 |
|
47 | 47 |
/** |
48 | 48 |
* Spatial join algorithm |
... | ... | |
102 | 102 |
String functionList = m_Parameters.getParameterValueAsString(FUNCTION_LIST); |
103 | 103 |
loadSummary(functionList); |
104 | 104 |
|
105 |
gvVectorLayer lyr1 = null;
|
|
106 |
gvVectorLayer lyr2 = null;
|
|
107 |
if(layer2 instanceof gvVectorLayer && layer1 instanceof gvVectorLayer) {
|
|
108 |
lyr2 = ((gvVectorLayer)layer2);
|
|
109 |
lyr1 = ((gvVectorLayer)layer1);
|
|
105 |
FlyrVectIVectorLayer lyr1 = null;
|
|
106 |
FlyrVectIVectorLayer lyr2 = null;
|
|
107 |
if(layer2 instanceof FlyrVectIVectorLayer && layer1 instanceof FlyrVectIVectorLayer) {
|
|
108 |
lyr2 = ((FlyrVectIVectorLayer)layer2);
|
|
109 |
lyr1 = ((FlyrVectIVectorLayer)layer1);
|
|
110 | 110 |
} else |
111 | 111 |
return false; |
112 | 112 |
|
... | ... | |
250 | 250 |
IVectorLayer output = getNewVectorLayer(sextanteLayerLabel, |
251 | 251 |
sextanteLayerName, |
252 | 252 |
shapeType, types, attrNames); |
253 |
return ((gvVectorLayer)output).getFeatureStore();
|
|
253 |
return ((FlyrVectIVectorLayer)output).getFeatureStore();
|
|
254 | 254 |
} catch (UnsupportedOutputChannelException e) { |
255 | 255 |
Sextante.addErrorToLog(e); |
256 | 256 |
} catch (GeoAlgorithmExecutionException e) { |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.xyshift/src/main/java/org/gvsig/geoprocess/algorithm/xyshift/XYShiftAlgorithm.java | ||
---|---|---|
33 | 33 |
import org.gvsig.fmap.dal.feature.FeatureType; |
34 | 34 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
35 | 35 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
36 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
36 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
37 | 37 |
|
38 | 38 |
/** |
39 | 39 |
* XYShift algorithm |
... | ... | |
83 | 83 |
double y = m_Parameters.getParameterValueAsDouble(Y); |
84 | 84 |
|
85 | 85 |
FeatureStore storeLayer = null; |
86 |
if(layer instanceof gvVectorLayer)
|
|
87 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
86 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
87 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
88 | 88 |
else |
89 | 89 |
return false; |
90 | 90 |
|
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.merge/src/main/java/org/gvsig/geoprocess/algorithm/merge/MergeAlgorithm.java | ||
---|---|---|
37 | 37 |
import org.gvsig.fmap.dal.feature.FeatureType; |
38 | 38 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
39 | 39 |
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess; |
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
41 | 41 |
|
42 | 42 |
/** |
43 | 43 |
* Merge algorithm |
... | ... | |
84 | 84 |
ArrayList<IVectorLayer> layers = m_Parameters.getParameterValueAsArrayList(LAYERS); |
85 | 85 |
|
86 | 86 |
FeatureStore storeLayer = null; |
87 |
if(layer instanceof gvVectorLayer)
|
|
88 |
storeLayer = ((gvVectorLayer)layer).getFeatureStore();
|
|
87 |
if(layer instanceof FlyrVectIVectorLayer)
|
|
88 |
storeLayer = ((FlyrVectIVectorLayer)layer).getFeatureStore();
|
|
89 | 89 |
else |
90 | 90 |
return false; |
91 | 91 |
|
... | ... | |
94 | 94 |
ArrayList<FeatureStore> featureStoreList = new ArrayList<FeatureStore>(); |
95 | 95 |
for (int i = 0; i < layers.size(); i++) { |
96 | 96 |
IVectorLayer lyr = layers.get(i); |
97 |
if(lyr instanceof gvVectorLayer && layer.getShapeType() == lyr.getShapeType())
|
|
98 |
featureStoreList.add(((gvVectorLayer)lyr).getFeatureStore());
|
|
97 |
if(lyr instanceof FlyrVectIVectorLayer && layer.getShapeType() == lyr.getShapeType())
|
|
98 |
featureStoreList.add(((FlyrVectIVectorLayer)lyr).getFeatureStore());
|
|
99 | 99 |
else { |
100 | 100 |
JOptionPane.showMessageDialog(null, |
101 | 101 |
Sextante.getText("layers_type_are_different"), |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.merge/src/main/java/org/gvsig/geoprocess/algorithm/merge/MergeOperation.java | ||
---|---|---|
28 | 28 |
import org.gvsig.fmap.dal.feature.Feature; |
29 | 29 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
30 | 30 |
import org.gvsig.geoprocess.algorithm.base.core.GeometryOperation; |
31 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
31 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
32 | 32 |
|
33 | 33 |
/** |
34 | 34 |
* Builds a geometry with the intersection between two layers |
... | ... | |
54 | 54 |
return lastEditFeature; |
55 | 55 |
|
56 | 56 |
try { |
57 |
if(inFeatureStore == ((gvVectorLayer)layer).getFeatureStore())
|
|
57 |
if(inFeatureStore == ((FlyrVectIVectorLayer)layer).getFeatureStore())
|
|
58 | 58 |
lastEditFeature = persister.addFeature(featureInput, g); |
59 | 59 |
else |
60 | 60 |
lastEditFeature = persister.addDifferentFieldFeature(featureInput, g); |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/AbstractSextanteGeoProcess.java | ||
---|---|---|
39 | 39 |
import org.gvsig.fmap.dal.feature.FeatureType; |
40 | 40 |
import org.gvsig.fmap.geom.Geometry; |
41 | 41 |
import org.gvsig.geoprocess.lib.api.GeoProcess; |
42 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.gvVectorLayer;
|
|
42 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FlyrVectIVectorLayer;
|
|
43 | 43 |
|
44 | 44 |
/** |
45 | 45 |
* Base implementation for Sextante based {@link GeoProcess} objects. |
... | ... | |
104 | 104 |
IVectorLayer output = |
105 | 105 |
getNewVectorLayer(sextanteLayerLabel, sextanteLayerName, |
106 | 106 |
shapeType, types, attrNames); |
107 |
return ((gvVectorLayer) output).getFeatureStore();
|
|
107 |
return ((FlyrVectIVectorLayer) output).getFeatureStore();
|
|
108 | 108 |
} catch (UnsupportedOutputChannelException e) { |
109 | 109 |
Sextante.addErrorToLog(e); |
110 | 110 |
} catch (GeoAlgorithmExecutionException e) { |
... | ... | |
190 | 190 |
IVectorLayer output = |
191 | 191 |
getNewVectorLayer(sextanteLayerLabel, sextanteLayerName, |
192 | 192 |
shapeType, types, attrNames); |
193 |
return ((gvVectorLayer) output).getFeatureStore();
|
|
193 |
return ((FlyrVectIVectorLayer) output).getFeatureStore();
|
|
194 | 194 |
} catch (UnsupportedOutputChannelException e) { |
195 | 195 |
Sextante.addErrorToLog(e); |
196 | 196 |
} catch (GeoAlgorithmExecutionException e) { |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/SextanteGeoProcessLibrary.java | ||
---|---|---|
35 | 35 |
import org.gvsig.fmap.mapcontrol.MapControlLibrary; |
36 | 36 |
import org.gvsig.geoprocess.lib.api.GeoProcessLibrary; |
37 | 37 |
import org.gvsig.geoprocess.lib.api.GeoProcessLocator; |
38 |
import org.gvsig.geoprocess.lib.sextante.core.gvInputFactory;
|
|
39 |
import org.gvsig.geoprocess.lib.sextante.core.gvOutputFactory;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.core.gvPostProcessTaskFactory;
|
|
38 |
import org.gvsig.geoprocess.lib.sextante.core.DefaultInputFactory;
|
|
39 |
import org.gvsig.geoprocess.lib.sextante.core.DefaultOutputFactory;
|
|
40 |
import org.gvsig.geoprocess.lib.sextante.core.DefaultPostProcessTaskFactory;
|
|
41 | 41 |
import org.gvsig.raster.fmap.FmapRasterLibrary; |
42 | 42 |
import org.gvsig.tools.library.AbstractLibrary; |
43 | 43 |
import org.gvsig.tools.library.LibraryException; |
... | ... | |
79 | 79 |
SextanteGUI.initialize(); |
80 | 80 |
SextanteGUI.setCustomDefaultSettings(map); |
81 | 81 |
SextanteGUI.setMainFrame(((Frame) PluginServices.getMainFrame())); |
82 |
SextanteGUI.setOutputFactory(new gvOutputFactory());
|
|
83 |
SextanteGUI.setInputFactory(new gvInputFactory());
|
|
84 |
SextanteGUI.setPostProcessTaskFactory(new gvPostProcessTaskFactory());
|
|
82 |
SextanteGUI.setOutputFactory(new DefaultOutputFactory());
|
|
83 |
SextanteGUI.setInputFactory(new DefaultInputFactory());
|
|
84 |
SextanteGUI.setPostProcessTaskFactory(new DefaultPostProcessTaskFactory());
|
|
85 | 85 |
|
86 | 86 |
GeoProcessLocator |
87 | 87 |
.registerGeoProcessManager(SextanteGeoProcessManager.class); |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/gvVectorLayer.java | ||
---|---|---|
1 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.sql.Types; |
|
5 |
import java.util.Iterator; |
|
6 |
|
|
7 |
import com.vividsolutions.jts.geom.Geometry; |
|
8 |
|
|
9 |
import es.unex.sextante.core.Sextante; |
|
10 |
import es.unex.sextante.dataObjects.AbstractVectorLayer; |
|
11 |
import es.unex.sextante.dataObjects.IFeatureIterator; |
|
12 |
import es.unex.sextante.dataObjects.IVectorLayer; |
|
13 |
import es.unex.sextante.outputs.FileOutputChannel; |
|
14 |
import es.unex.sextante.outputs.IOutputChannel; |
|
15 |
|
|
16 |
import org.cresques.cts.IProjection; |
|
17 |
|
|
18 |
import org.gvsig.fmap.dal.DALLocator; |
|
19 |
import org.gvsig.fmap.dal.DataManager; |
|
20 |
import org.gvsig.fmap.dal.DataServerExplorer; |
|
21 |
import org.gvsig.fmap.dal.DataStoreParameters; |
|
22 |
import org.gvsig.fmap.dal.exception.DataException; |
|
23 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
|
24 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
|
25 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
26 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
27 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
28 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
|
29 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
|
30 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters; |
|
31 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
|
32 |
import org.gvsig.fmap.geom.DataTypes; |
|
33 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
34 |
import org.gvsig.fmap.geom.GeometryManager; |
|
35 |
import org.gvsig.fmap.geom.operation.GeometryOperationContext; |
|
36 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
37 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
38 |
import org.gvsig.fmap.geom.operation.fromjts.FromJTS; |
|
39 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
40 |
import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException; |
|
41 |
import org.gvsig.fmap.geom.type.GeometryTypeNotValidException; |
|
42 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
|
43 |
import org.gvsig.fmap.mapcontext.layers.LayerFactory; |
|
44 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
45 |
import org.gvsig.tools.ToolsLocator; |
|
46 |
import org.gvsig.tools.dataTypes.DataTypesManager; |
|
47 |
|
|
48 |
public class gvVectorLayer extends AbstractVectorLayer { |
|
49 |
|
|
50 |
private static final DataManager DATA_MANAGER = DALLocator.getDataManager(); |
|
51 |
|
|
52 |
private final int PRECISION = 5; |
|
53 |
private FeatureStore featureStore = null; |
|
54 |
private IProjection m_Projection = null; |
|
55 |
private FeatureType featureType = null; |
|
56 |
private GeometryManager geometryManager = null; |
|
57 |
private FLyrVect m_Layer; |
|
58 |
private String m_sName; |
|
59 |
private IOutputChannel m_Channel; |
|
60 |
|
|
61 |
// private Object inputParameters = null; |
|
62 |
|
|
63 |
public gvVectorLayer() { |
|
64 |
geometryManager = GeometryLocator.getGeometryManager(); |
|
65 |
} |
|
66 |
|
|
67 |
public void create(String sName, Object inputParams, int iShapeType, |
|
68 |
Class[] types, String[] sFields, Object crs, int[] fieldSize) { |
|
69 |
try { |
|
70 |
// inputParameters = inputParams; |
|
71 |
m_sName = sName; |
|
72 |
m_Projection = (IProjection) crs; |
|
73 |
|
|
74 |
if (inputParams instanceof OutputParameters) { |
|
75 |
OutputParameters outputParam = (OutputParameters) inputParams; |
|
76 |
NewFeatureStoreParameters newParams = |
|
77 |
outputParam.getDataParameters(); |
|
78 |
DataServerExplorer dataServerExplorer = |
|
79 |
outputParam.getExplorer(); |
|
80 |
|
|
81 |
featureType = newParams.getDefaultFeatureType(); |
|
82 |
loadFeatureType(sFields, types, iShapeType, crs, |
|
83 |
(EditableFeatureType) featureType, fieldSize); |
|
84 |
newParams.setDynValue("CRS", m_Projection); |
|
85 |
|
|
86 |
DATA_MANAGER.newStore(dataServerExplorer.getProviderName(), |
|
87 |
newParams.getDataStoreName(), newParams, true); |
|
88 |
|
|
89 |
featureStore = |
|
90 |
(FeatureStore) DATA_MANAGER.openStore( |
|
91 |
newParams.getDataStoreName(), newParams); |
|
92 |
featureStore.edit(FeatureStore.MODE_APPEND); |
|
93 |
} |
|
94 |
|
|
95 |
if (inputParams instanceof FilesystemStoreParameters) { |
|
96 |
// TODO: Terminar para todo tipo fuentes de datos. No se puede |
|
97 |
// hacer ahora pq falta poder obtener un FeatureType del |
|
98 |
// parameter. |
|
99 |
// Esto es as? pq el store registra parameters para cargar |
|
100 |
// ficheros y no para escribirlos. |
|
101 |
String path = |
|
102 |
((FilesystemStoreParameters) inputParams).getFile() |
|
103 |
.getAbsolutePath(); |
|
104 |
create(sName, path, iShapeType, types, sFields, crs, fieldSize); |
|
105 |
} |
|
106 |
|
|
107 |
if (inputParams instanceof String) { |
|
108 |
create(sName, (String) inputParams, iShapeType, types, sFields, |
|
109 |
crs, fieldSize); |
|
110 |
} |
|
111 |
|
|
112 |
/* |
|
113 |
* NewFeatureStoreParameters param = |
|
114 |
* (NewFeatureStoreParameters)inputParams; |
|
115 |
* featureType = param.getDefaultFeatureType(); |
|
116 |
* loadFeatureType(sFields, types, iShapeType, crs, featureType, |
|
117 |
* fieldSize); |
|
118 |
* |
|
119 |
* param.setDefaultFeatureType(featureType); |
|
120 |
* |
|
121 |
* DataManager manager = DALLocator.getDataManager(); |
|
122 |
* featureStore = (FeatureStore) manager.createStore(param); |
|
123 |
* featureStore.edit(FeatureStore.MODE_APPEND); |
|
124 |
*/ |
|
125 |
|
|
126 |
} catch (Exception e) { |
|
127 |
Sextante.addErrorToLog(e); |
|
128 |
} |
|
129 |
} |
|
130 |
|
|
131 |
public void create(final String sName, final String sFilename, |
|
132 |
final int iShapeType, final Class<?>[] types, final String[] sFields, |
|
133 |
final Object crs, final int[] fieldSize) { |
|
134 |
|
|
135 |
try { |
|
136 |
// inputParameters = sFilename; |
|
137 |
m_sName = sName; |
|
138 |
m_Projection = (IProjection) crs; |
|
139 |
|
|
140 |
final FilesystemServerExplorerParameters explorerParams = |
|
141 |
(FilesystemServerExplorerParameters) DATA_MANAGER |
|
142 |
.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
|
143 |
explorerParams.setRoot(new File(sFilename).getParent()); |
|
144 |
final FilesystemServerExplorer explorer = |
|
145 |
(FilesystemServerExplorer) DATA_MANAGER.openServerExplorer( |
|
146 |
FilesystemServerExplorer.NAME, explorerParams); |
|
147 |
final NewFeatureStoreParameters newParams = |
|
148 |
(NewFeatureStoreParameters) explorer.getAddParameters(new File( |
|
149 |
sFilename)); |
|
150 |
|
|
151 |
EditableFeatureType editableFeatureType = |
|
152 |
newParams.getDefaultFeatureType(); |
|
153 |
featureType = editableFeatureType; |
|
154 |
loadFeatureType(sFields, types, iShapeType, crs, |
|
155 |
editableFeatureType, fieldSize); |
|
156 |
|
|
157 |
newParams.setDefaultFeatureType(featureType); |
|
158 |
newParams.setDynValue("crs", m_Projection); |
|
159 |
|
|
160 |
explorer.add(newParams.getDataStoreName(), newParams, true); |
|
161 |
featureStore = |
|
162 |
(FeatureStore) DATA_MANAGER.openStore( |
|
163 |
newParams.getDataStoreName(), newParams); |
|
164 |
featureStore.edit(FeatureStore.MODE_APPEND); |
|
165 |
featureType = featureStore.getDefaultFeatureType(); |
|
166 |
|
|
167 |
} catch (final Exception e) { |
|
168 |
Sextante.addErrorToLog(e); |
|
169 |
} |
|
170 |
} |
|
171 |
|
|
172 |
private void loadFeatureType(final String[] fields, final Class<?>[] types, |
|
173 |
final int shapeType, final Object crs, |
|
174 |
final EditableFeatureType featureType, final int[] fieldSize) { |
|
175 |
final int[] iTypes = getTypes(types); |
|
176 |
|
|
177 |
for (int i = 0; i < fields.length; i++) { |
|
178 |
if (iTypes[i] == DataTypes.GEOMETRY) { |
|
179 |
addGeometryAttribute(fields[i], shapeType, featureType); |
|
180 |
} else { |
|
181 |
featureType.add(fields[i], iTypes[i]).setSize(fieldSize[i]) |
|
182 |
.setPrecision(PRECISION); |
|
183 |
} |
|
184 |
} |
|
185 |
|
|
186 |
FeatureAttributeDescriptor desc = |
|
187 |
featureType.getAttributeDescriptor("GEOMETRY"); |
|
188 |
if (desc == null) { |
|
189 |
addGeometryAttribute("GEOMETRY", shapeType, featureType); |
|
190 |
} |
|
191 |
featureType.setDefaultGeometryAttributeName("GEOMETRY"); |
|
192 |
} |
|
193 |
|
|
194 |
private void addGeometryAttribute(final String fieldName, |
|
195 |
final int shapeType, final EditableFeatureType featureType) { |
|
196 |
try { |
|
197 |
GeometryType type = |
|
198 |
geometryManager.getGeometryType(getgvSIGShapeType(shapeType), |
|
199 |
org.gvsig.fmap.geom.Geometry.SUBTYPES.GEOM2D); |
|
200 |
featureType.add(fieldName, DataTypes.GEOMETRY) |
|
201 |
.setGeometryType(type); |
|
202 |
} catch (GeometryTypeNotSupportedException e) { |
|
203 |
throw new RuntimeException( |
|
204 |
"Error getting geometry type with type = " |
|
205 |
+ getgvSIGShapeType(shapeType) + ", subtype = " |
|
206 |
+ org.gvsig.fmap.geom.Geometry.SUBTYPES.GEOM2D, e); |
|
207 |
} catch (GeometryTypeNotValidException e) { |
|
208 |
throw new RuntimeException( |
|
209 |
"Error getting geometry type with type = " |
|
210 |
+ getgvSIGShapeType(shapeType) + ", subtype = " |
|
211 |
+ org.gvsig.fmap.geom.Geometry.SUBTYPES.GEOM2D, e); |
|
212 |
} |
|
213 |
} |
|
214 |
|
|
215 |
private int[] getTypes(Class<?>[] classes) { |
|
216 |
DataTypesManager typesManager = ToolsLocator.getDataTypesManager(); |
|
217 |
int[] types = new int[classes.length]; |
|
218 |
for (int i = 0; i < classes.length; i++) { |
|
219 |
types[i] = typesManager.getDataType(classes[i]).getType(); |
|
220 |
} |
|
221 |
return types; |
|
222 |
} |
|
223 |
|
|
224 |
public void create(final FLyrVect layer) { |
|
225 |
|
|
226 |
m_Layer = layer; |
|
227 |
try { |
|
228 |
featureStore = layer.getFeatureStore(); |
|
229 |
featureType = featureStore.getDefaultFeatureType(); |
|
230 |
m_Projection = layer.getProjection(); |
|
231 |
} catch (final Exception e) { |
|
232 |
Sextante.addErrorToLog(e); |
|
233 |
} |
|
234 |
|
|
235 |
} |
|
236 |
|
|
237 |
@SuppressWarnings("deprecation") |
|
238 |
public void open() { |
|
239 |
|
|
240 |
if (m_Layer == null) { |
|
241 |
try { |
|
242 |
m_Layer = |
|
243 |
(FLyrVect) LayerFactory.getInstance().createLayer( |
|
244 |
getFilename(), featureStore); |
|
245 |
} catch (final LoadLayerException e) { |
|
246 |
Sextante.addErrorToLog(e); |
|
247 |
throw new RuntimeException(e); |
|
248 |
} |
|
249 |
} |
|
250 |
|
|
251 |
} |
|
252 |
|
|
253 |
public void close() { |
|
254 |
} |
|
255 |
|
|
256 |
/** |
|
257 |
* Returns the length of field |
|
258 |
* |
|
259 |
* @param dataType |
|
260 |
* @return length of field |
|
261 |
*/ |
|
262 |
public int getDataTypeLength(final int dataType) { |
|
263 |
|
|
264 |
switch (dataType) { |
|
265 |
case Types.NUMERIC: |
|
266 |
case Types.DOUBLE: |
|
267 |
case Types.REAL: |
|
268 |
case Types.FLOAT: |
|
269 |
case Types.BIGINT: |
|
270 |
case Types.INTEGER: |
|
271 |
case Types.DECIMAL: |
|
272 |
return 20; |
|
273 |
case Types.CHAR: |
|
274 |
case Types.VARCHAR: |
|
275 |
case Types.LONGVARCHAR: |
|
276 |
return 254; |
|
277 |
case Types.DATE: |
|
278 |
return 8; |
|
279 |
case Types.BOOLEAN: |
|
280 |
case Types.BIT: |
|
281 |
return 1; |
|
282 |
} |
|
283 |
return 0; |
|
284 |
|
|
285 |
} |
|
286 |
|
|
287 |
@SuppressWarnings("unchecked") |
|
288 |
public void addFeature(final Geometry geom, final Object[] values) { |
|
289 |
try { |
|
290 |
org.gvsig.fmap.geom.Geometry iGeo = null; |
|
291 |
|
|
292 |
final GeometryOperationContext ctx = new GeometryOperationContext(); |
|
293 |
ctx.setAttribute(FromJTS.PARAM, geom); |
|
294 |
try { |
|
295 |
iGeo = |
|
296 |
(org.gvsig.fmap.geom.Geometry) geometryManager |
|
297 |
.invokeOperation(FromJTS.NAME, ctx); |
|
298 |
} catch (final GeometryOperationNotSupportedException e) { |
|
299 |
Sextante.addErrorToLog(e); |
|
300 |
return; |
|
301 |
} catch (final GeometryOperationException e) { |
|
302 |
Sextante.addErrorToLog(e); |
|
303 |
return; |
|
304 |
} |
|
305 |
|
|
306 |
final EditableFeature ef = featureStore.createNewFeature(); |
|
307 |
final Iterator<FeatureAttributeDescriptor> features = |
|
308 |
featureType.iterator(); |
|
309 |
|
|
310 |
int i = 0; |
|
311 |
while (features.hasNext()) { |
|
312 |
final FeatureAttributeDescriptor featureAttributeDescriptor = |
|
313 |
features.next(); |
|
314 |
// if (!featureAttributeDescriptor.getName().equals( |
|
315 |
// featureType.getDefaultGeometryAttributeName())) { |
|
316 |
// ef.set( |
|
317 |
// featureAttributeDescriptor.getName().substring( |
|
318 |
// 0, |
|
319 |
// Math.min(11, featureAttributeDescriptor.getName() |
|
320 |
// .length())), values[i]); |
|
321 |
// i++; |
|
322 |
// } |
|
323 |
if (!featureAttributeDescriptor.getName().equals( |
|
324 |
featureType.getDefaultGeometryAttributeName())) { |
|
325 |
ef.set(featureAttributeDescriptor.getName(), values[i]); |
|
326 |
} |
|
327 |
i++; |
|
328 |
} |
|
329 |
ef.set(featureType.getDefaultGeometryAttributeIndex(), iGeo); |
|
330 |
featureStore.insert(ef); |
|
331 |
} catch (final Exception e) { |
|
332 |
e.printStackTrace(); |
|
333 |
} |
|
334 |
} |
|
335 |
|
|
336 |
public IFeatureIterator iterator() { |
|
337 |
|
|
338 |
if (m_Layer != null) { |
|
339 |
return new gvFeatureIterator(m_Layer, getFilters()); |
|
340 |
} else { |
|
341 |
// cannot iterate layers being edited |
|
342 |
return new gvFeatureIterator(); |
|
343 |
} |
|
344 |
} |
|
345 |
|
|
346 |
public String getFieldName(final int i) { |
|
347 |
|
|
348 |
if (featureStore != null) { |
|
349 |
return ((FeatureAttributeDescriptor) featureType.get(i)).getName(); |
|
350 |
} |
|
351 |
return null; |
|
352 |
|
|
353 |
} |
|
354 |
|
|
355 |
public Class<?> getFieldType(final int i) { |
|
356 |
return featureStore == null ? null : featureType |
|
357 |
.getAttributeDescriptor(i).getDataType().getDefaultClass(); |
|
358 |
} |
|
359 |
|
|
360 |
public int getFieldCount() { |
|
361 |
if (featureStore != null) { |
|
362 |
return featureType.size(); |
|
363 |
} |
|
364 |
return 0; |
|
365 |
|
|
366 |
} |
|
367 |
|
|
368 |
@Override |
|
369 |
public int getShapesCount() { |
|
370 |
|
|
371 |
if (featureStore != null) { |
|
372 |
try { |
|
373 |
return (int) featureStore.getFeatureSet().getSize(); |
|
374 |
} catch (final DataException e) { |
|
375 |
Sextante.addErrorToLog(e); |
|
376 |
return 0; |
|
377 |
} |
|
378 |
} |
|
379 |
return 0; |
|
380 |
|
|
381 |
} |
|
382 |
|
|
383 |
public int getShapeType() { |
|
384 |
if (featureStore != null) { |
|
385 |
return getShapeTypeFromGvSIGShapeType(((FeatureAttributeDescriptor) featureType |
|
386 |
.get(featureType.getDefaultGeometryAttributeIndex())) |
|
387 |
.getGeomType().getType()); |
|
388 |
} |
|
389 |
return 0; |
|
390 |
} |
|
391 |
|
|
392 |
private int getShapeTypeFromGvSIGShapeType(final int shapeType) { |
|
393 |
|
|
394 |
switch (shapeType) { |
|
395 |
case org.gvsig.fmap.geom.Geometry.TYPES.SURFACE: |
|
396 |
return IVectorLayer.SHAPE_TYPE_POLYGON; |
|
397 |
case org.gvsig.fmap.geom.Geometry.TYPES.CURVE: |
|
398 |
case org.gvsig.fmap.geom.Geometry.TYPES.MULTICURVE: |
|
399 |
return IVectorLayer.SHAPE_TYPE_LINE; |
|
400 |
case org.gvsig.fmap.geom.Geometry.TYPES.POINT: |
|
401 |
case org.gvsig.fmap.geom.Geometry.TYPES.MULTIPOINT: |
|
402 |
return IVectorLayer.SHAPE_TYPE_POINT; |
|
403 |
default: |
|
404 |
return IVectorLayer.SHAPE_TYPE_POLYGON; |
|
405 |
} |
|
406 |
|
|
407 |
} |
|
408 |
|
|
409 |
private int getgvSIGShapeType(final int shapeType) { |
|
410 |
|
|
411 |
switch (shapeType) { |
|
412 |
case IVectorLayer.SHAPE_TYPE_POLYGON: |
|
413 |
return org.gvsig.fmap.geom.Geometry.TYPES.SURFACE; |
|
414 |
case IVectorLayer.SHAPE_TYPE_LINE: |
|
415 |
return org.gvsig.fmap.geom.Geometry.TYPES.CURVE; |
|
416 |
case IVectorLayer.SHAPE_TYPE_POINT: |
|
417 |
return org.gvsig.fmap.geom.Geometry.TYPES.POINT; |
|
418 |
default: |
|
419 |
return org.gvsig.fmap.geom.Geometry.TYPES.SURFACE; |
|
420 |
} |
|
421 |
|
|
422 |
} |
|
423 |
|
|
424 |
public String getName() { |
|
425 |
|
|
426 |
if (m_Layer != null) { |
|
427 |
return m_Layer.getName(); |
|
428 |
} else { |
|
429 |
return m_sName; |
|
430 |
} |
|
431 |
} |
|
432 |
|
|
433 |
public void postProcess() { |
|
434 |
|
|
435 |
if (featureStore == null) { |
|
436 |
return; |
|
437 |
} |
|
438 |
try { |
|
439 |
featureStore.finishEditing(); |
|
440 |
} catch (final DataException e) { |
|
441 |
// No puede finalizar la edici๏ฟฝn. Es posible que se haya cerrado |
|
442 |
// previamente. |
|
443 |
} |
|
444 |
|
|
445 |
/* |
|
446 |
* FLyrVect vectorLayer = null; |
|
447 |
* if (inputParameters instanceof String) { |
|
448 |
* vectorLayer = (FLyrVect) FileTools.openLayer((String) |
|
449 |
* inputParameters, s_Name, m_Projection); |
|
450 |
* } |
|
451 |
* if (inputParameters instanceof OutputParameters) { |
|
452 |
* vectorLayer = (FLyrVect) FileTools.openLayer(((OutputParameters) |
|
453 |
* inputParameters).getDataParameters(), s_Name, |
|
454 |
* m_Projection); |
|
455 |
* } |
|
456 |
* create(vectorLayer); |
|
457 |
*/ |
|
458 |
|
|
459 |
} |
|
460 |
|
|
461 |
public String getFilename() { |
|
462 |
|
|
463 |
if (featureStore != null) { |
|
464 |
final DataStoreParameters dsp = featureStore.getParameters(); |
|
465 |
if (dsp instanceof FilesystemStoreParameters) { |
|
466 |
return ((FilesystemStoreParameters) dsp).getFile() |
|
467 |
.getAbsolutePath(); |
|
468 |
} else { |
|
469 |
return null; |
|
470 |
} |
|
471 |
} else { |
|
472 |
return m_sName; |
|
473 |
} |
|
474 |
|
|
475 |
} |
|
476 |
|
|
477 |
public Object getCRS() { |
|
478 |
|
|
479 |
return m_Projection; |
|
480 |
|
|
481 |
} |
|
482 |
|
|
483 |
public void setName(final String name) { |
|
484 |
|
|
485 |
m_sName = name; |
|
486 |
// inputParameters = name; |
|
487 |
|
|
488 |
} |
|
489 |
|
|
490 |
@Override |
|
491 |
public Object getBaseDataObject() { |
|
492 |
|
|
493 |
return m_Layer; |
|
494 |
|
|
495 |
} |
|
496 |
|
|
497 |
public void free() { |
|
498 |
|
|
499 |
m_Layer.dispose(); |
|
500 |
featureStore.dispose(); |
|
501 |
|
|
502 |
m_Layer = null; |
|
503 |
featureStore = null; |
|
504 |
} |
|
505 |
|
|
506 |
public IOutputChannel getOutputChannel() { |
|
507 |
|
|
508 |
if (featureStore != null) { |
|
509 |
final DataStoreParameters dsp = featureStore.getParameters(); |
|
510 |
if (dsp instanceof FilesystemStoreParameters) { |
|
511 |
String file = |
|
512 |
((FilesystemStoreParameters) dsp).getFile() |
|
513 |
.getAbsolutePath(); |
|
514 |
return new FileOutputChannel(file); |
|
515 |
} else { |
|
516 |
return null; |
|
517 |
} |
|
518 |
} else { |
|
519 |
return m_Channel; |
|
520 |
} |
|
521 |
|
|
522 |
} |
|
523 |
|
|
524 |
public boolean canBeEdited() { |
|
525 |
|
|
526 |
// we support only file-based, so we can overwrite |
|
527 |
return true; |
|
528 |
|
|
529 |
} |
|
530 |
|
|
531 |
public FeatureStore getFeatureStore() { |
|
532 |
return featureStore; |
|
533 |
} |
|
534 |
|
|
535 |
} |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/gvRecordsetIterator.java | ||
---|---|---|
1 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.Iterator; |
|
5 |
|
|
6 |
import es.unex.sextante.dataObjects.IRecord; |
|
7 |
import es.unex.sextante.dataObjects.IRecordsetIterator; |
|
8 |
import es.unex.sextante.dataObjects.RecordImpl; |
|
9 |
|
|
10 |
import org.gvsig.fmap.dal.exception.DataException; |
|
11 |
import org.gvsig.fmap.dal.feature.Feature; |
|
12 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
13 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
|
14 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
15 |
import org.gvsig.tools.dispose.DisposableIterator; |
|
16 |
|
|
17 |
public class gvRecordsetIterator implements IRecordsetIterator { |
|
18 |
|
|
19 |
private final FeatureSet featureSet; |
|
20 |
private DisposableIterator featureIterator; |
|
21 |
|
|
22 |
gvRecordsetIterator(final FeatureSet obj) throws DataException { |
|
23 |
|
|
24 |
featureSet = obj; |
|
25 |
try { |
|
26 |
featureIterator = featureSet.fastIterator(); |
|
27 |
} catch (final DataException e) { |
|
28 |
throw e; |
|
29 |
} |
|
30 |
|
|
31 |
} |
|
32 |
|
|
33 |
public boolean hasNext() { |
|
34 |
return featureIterator.hasNext(); |
|
35 |
} |
|
36 |
|
|
37 |
public IRecord next() { |
|
38 |
final Feature feature = (Feature) featureIterator.next(); |
|
39 |
final FeatureType fType = feature.getType(); |
|
40 |
@SuppressWarnings("unchecked") |
|
41 |
final Iterator<FeatureAttributeDescriptor> descriptors = |
|
42 |
fType.iterator(); |
|
43 |
final ArrayList<Object> objects = new ArrayList<Object>(); |
|
44 |
while (descriptors.hasNext()) { |
|
45 |
final FeatureAttributeDescriptor descriptor = descriptors.next(); |
|
46 |
objects.add(feature.get(descriptor.getName())); |
|
47 |
} |
|
48 |
|
|
49 |
final IRecord record = new RecordImpl(objects.toArray(new Object[0])); |
|
50 |
|
|
51 |
return record; |
|
52 |
} |
|
53 |
|
|
54 |
public void close() { |
|
55 |
if (featureIterator != null) { |
|
56 |
featureIterator.dispose(); |
|
57 |
featureIterator = null; |
|
58 |
} |
|
59 |
featureSet.dispose(); |
|
60 |
} |
|
61 |
|
|
62 |
} |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/gvFeatureIterator.java | ||
---|---|---|
1 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.Iterator; |
|
5 |
import java.util.List; |
|
6 |
import java.util.NoSuchElementException; |
|
7 |
|
|
8 |
import com.vividsolutions.jts.geom.Geometry; |
|
9 |
|
|
10 |
import es.unex.sextante.core.Sextante; |
|
11 |
import es.unex.sextante.dataObjects.FeatureImpl; |
|
12 |
import es.unex.sextante.dataObjects.IFeature; |
|
13 |
import es.unex.sextante.dataObjects.IFeatureIterator; |
|
14 |
import es.unex.sextante.dataObjects.vectorFilters.IVectorLayerFilter; |
|
15 |
|
|
16 |
import org.gvsig.fmap.dal.exception.DataException; |
|
17 |
import org.gvsig.fmap.dal.feature.Feature; |
|
18 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
19 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
|
20 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
21 |
import org.gvsig.fmap.geom.operation.tojts.ToJTS; |
|
22 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
23 |
import org.gvsig.tools.dispose.DisposableIterator; |
|
24 |
|
|
25 |
public class gvFeatureIterator implements IFeatureIterator { |
|
26 |
|
|
27 |
private final List<IVectorLayerFilter> m_Filters; |
|
28 |
private boolean m_bIsNextConsumed; |
|
29 |
private IFeature m_CurrentValue; |
|
30 |
private boolean m_bFinished; |
|
31 |
private DisposableIterator m_FeatureIterator; |
|
32 |
|
|
33 |
public gvFeatureIterator(final FLyrVect layer, |
|
34 |
final List<IVectorLayerFilter> filters) { |
|
35 |
|
|
36 |
m_bIsNextConsumed = true; |
|
37 |
m_Filters = filters; |
|
38 |
|
|
39 |
FeatureSet set = null; |
|
40 |
try { |
|
41 |
set = layer.getFeatureStore().getFeatureSet(); |
|
42 |
m_FeatureIterator = set.fastIterator(); |
|
43 |
} catch (final DataException e) { |
|
44 |
if (m_FeatureIterator != null) { |
|
45 |
m_FeatureIterator.dispose(); |
|
46 |
} |
|
47 |
if (set != null) { |
|
48 |
set.dispose(); |
|
49 |
} |
|
50 |
} |
|
51 |
} |
|
52 |
|
|
53 |
public gvFeatureIterator() { |
|
54 |
|
|
55 |
m_Filters = null; |
|
56 |
|
|
57 |
} |
|
58 |
|
|
59 |
private boolean accept(final IFeature value) { |
|
60 |
|
|
61 |
for (final IVectorLayerFilter filter : m_Filters) { |
|
62 |
if (!filter.accept(value, 0)) { |
|
63 |
return false; |
|
64 |
} |
|
65 |
} |
|
66 |
return true; |
|
67 |
} |
|
68 |
|
|
69 |
public boolean moveToNextValid() { |
|
70 |
|
|
71 |
if (m_FeatureIterator == null) { |
|
72 |
return false; |
|
73 |
} |
|
74 |
|
|
75 |
boolean bFound = false; |
|
76 |
; |
|
77 |
while (!bFound && m_FeatureIterator.hasNext()) { |
|
78 |
try { |
|
79 |
final Feature f = (Feature) m_FeatureIterator.next(); |
|
80 |
final org.gvsig.fmap.geom.Geometry geometry = |
|
81 |
f.getDefaultGeometry(); |
|
82 |
final Geometry geom = |
|
83 |
(Geometry) geometry.invokeOperation(ToJTS.CODE, null); |
|
84 |
final FeatureType type = f.getType(); |
|
85 |
@SuppressWarnings("unchecked") |
|
86 |
final Iterator<FeatureAttributeDescriptor> iter = |
|
87 |
type.iterator(); |
|
88 |
final List<Object> objects = new ArrayList<Object>(); |
|
89 |
while (iter.hasNext()) { |
|
90 |
final FeatureAttributeDescriptor descriptor = iter.next(); |
|
91 |
final String name = descriptor.getName(); |
|
92 |
// Comment this as if the geometry field is in the middle of |
|
93 |
// the fields it will be problematic elsewhere |
|
94 |
if (!type.getDefaultGeometryAttributeName().equals(name)) { |
|
95 |
objects.add(f.get(name)); |
|
96 |
} |
|
97 |
} |
|
98 |
final FeatureImpl feature = |
|
99 |
new FeatureImpl(geom, objects.toArray(new Object[objects |
|
100 |
.size()])); |
|
101 |
if (accept(feature)) { |
|
102 |
bFound = true; |
|
103 |
m_CurrentValue = feature; |
|
104 |
m_bIsNextConsumed = false; |
|
105 |
} |
|
106 |
} catch (final Exception e) { |
|
107 |
Sextante.addErrorToLog(e); |
|
108 |
return false; |
|
109 |
} |
|
110 |
} |
|
111 |
if (!bFound) { |
|
112 |
m_bFinished = true; |
|
113 |
} |
|
114 |
return bFound; |
|
115 |
} |
|
116 |
|
|
117 |
public IFeature next() { |
|
118 |
|
|
119 |
if (!m_bIsNextConsumed) { |
|
120 |
m_bIsNextConsumed = true; |
|
121 |
return m_CurrentValue; |
|
122 |
} |
|
123 |
|
|
124 |
if (!m_bFinished) { |
|
125 |
if (moveToNextValid()) { |
|
126 |
m_bIsNextConsumed = true; |
|
127 |
return m_CurrentValue; |
|
128 |
} |
|
129 |
} |
|
130 |
|
|
131 |
throw new NoSuchElementException(); |
|
132 |
} |
|
133 |
|
|
134 |
public boolean hasNext() { |
|
135 |
|
|
136 |
if (m_bFinished) { |
|
137 |
return false; |
|
138 |
} |
|
139 |
|
|
140 |
if (!m_bIsNextConsumed) { |
|
141 |
return true; |
|
142 |
} |
|
143 |
|
|
144 |
return moveToNextValid(); |
|
145 |
|
|
146 |
} |
|
147 |
|
|
148 |
public void close() { |
|
149 |
} |
|
150 |
|
|
151 |
} |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/gvTable.java | ||
---|---|---|
1 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.util.Iterator; |
|
5 |
|
|
6 |
import es.unex.sextante.core.Sextante; |
|
7 |
import es.unex.sextante.dataObjects.AbstractTable; |
|
8 |
import es.unex.sextante.dataObjects.IRecordsetIterator; |
|
9 |
import es.unex.sextante.outputs.FileOutputChannel; |
|
10 |
import es.unex.sextante.outputs.IOutputChannel; |
|
11 |
|
|
12 |
import org.gvsig.app.project.ProjectManager; |
|
13 |
import org.gvsig.app.project.documents.table.TableDocument; |
|
14 |
import org.gvsig.app.project.documents.table.TableManager; |
|
15 |
import org.gvsig.fmap.dal.DALLocator; |
|
16 |
import org.gvsig.fmap.dal.DataManager; |
|
17 |
import org.gvsig.fmap.dal.exception.DataException; |
|
18 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
|
19 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
|
20 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
21 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
22 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
23 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
|
24 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
|
25 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters; |
|
26 |
import org.gvsig.tools.ToolsLocator; |
|
27 |
import org.gvsig.tools.dataTypes.DataTypesManager; |
|
28 |
|
|
29 |
public class gvTable extends AbstractTable { |
|
30 |
|
|
31 |
private final int PRECISION = 5; |
|
32 |
private TableDocument m_Table; |
|
33 |
private String m_sName; |
|
34 |
private String m_sFilename; |
|
35 |
private FeatureType featureType; |
|
36 |
private FeatureStore featureStore; |
|
37 |
|
|
38 |
public String getName() { |
|
39 |
|
|
40 |
if (m_Table != null) { |
|
41 |
return m_Table.getName(); |
|
42 |
} else { |
|
43 |
return m_sName; |
|
44 |
} |
|
45 |
|
|
46 |
} |
|
47 |
|
|
48 |
public void create(final TableDocument table) { |
|
49 |
|
|
50 |
try { |
|
51 |
m_Table = table; |
|
52 |
featureStore = table.getStore(); |
|
53 |
featureType = featureStore.getDefaultFeatureType(); |
|
54 |
} catch (final DataException e) { |
|
55 |
Sextante.addErrorToLog(e); |
|
56 |
} |
|
57 |
|
|
58 |
} |
|
59 |
|
|
60 |
public void create(final String sName, final String sFilename, |
|
61 |
final Class<?>[] types, final String[] sFields) { |
|
62 |
|
|
63 |
try { |
|
64 |
m_sName = sName; |
|
65 |
|
|
66 |
final DataManager datamanager = DALLocator.getDataManager(); |
|
67 |
final FilesystemServerExplorerParameters explorerParams = |
|
68 |
(FilesystemServerExplorerParameters) datamanager |
|
69 |
.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
|
70 |
explorerParams.setRoot(new File(sFilename).getParent()); |
|
71 |
final FilesystemServerExplorer explorer = |
|
72 |
(FilesystemServerExplorer) datamanager.openServerExplorer( |
|
73 |
FilesystemServerExplorer.NAME, explorerParams); |
|
74 |
final NewFeatureStoreParameters newParams = |
|
75 |
(NewFeatureStoreParameters) explorer.getAddParameters(new File( |
|
76 |
sFilename)); |
|
77 |
|
|
78 |
EditableFeatureType editableFeatureType = |
|
79 |
newParams.getDefaultFeatureType(); |
|
80 |
featureType = editableFeatureType; |
|
81 |
loadFeatureType(sFields, types, editableFeatureType); |
|
82 |
|
|
83 |
newParams.setDefaultFeatureType(featureType); |
|
84 |
|
|
85 |
explorer.add(newParams.getDataStoreName(), newParams, true); |
|
86 |
final DataManager manager = DALLocator.getDataManager(); |
|
87 |
featureStore = |
|
88 |
(FeatureStore) manager.openStore(newParams.getDataStoreName(), |
|
89 |
newParams); |
|
90 |
featureStore.edit(FeatureStore.MODE_APPEND); |
|
91 |
featureType = featureStore.getDefaultFeatureType(); |
|
92 |
m_sFilename = sFilename; |
|
93 |
|
|
94 |
} catch (final Exception e) { |
|
95 |
Sextante.addErrorToLog(e); |
|
96 |
} |
|
97 |
|
|
98 |
} |
|
99 |
|
|
100 |
private void loadFeatureType(final String[] fields, final Class<?>[] types, |
|
101 |
final EditableFeatureType featureType) { |
|
102 |
final int[] iTypes = getTypes(types); |
|
103 |
|
|
104 |
for (int i = 0; i < fields.length; i++) { |
|
105 |
featureType.add(fields[i], iTypes[i]).setPrecision(PRECISION); |
|
106 |
} |
|
107 |
} |
|
108 |
|
|
109 |
private int[] getTypes(Class<?>[] classes) { |
|
110 |
DataTypesManager typesManager = ToolsLocator.getDataTypesManager(); |
|
111 |
int[] types = new int[classes.length]; |
|
112 |
for (int i = 0; i < classes.length; i++) { |
|
113 |
types[i] = typesManager.getDataType(classes[i]).getType(); |
|
114 |
} |
|
115 |
return types; |
|
116 |
} |
|
117 |
|
|
118 |
public void addRecord(final Object[] record) { |
|
119 |
try { |
|
120 |
final EditableFeature ef = featureStore.createNewFeature(); |
|
121 |
@SuppressWarnings("unchecked") |
|
122 |
final Iterator<FeatureAttributeDescriptor> features = |
|
123 |
featureType.iterator(); |
|
124 |
|
|
125 |
int i = 0; |
|
126 |
while (features.hasNext()) { |
|
127 |
final FeatureAttributeDescriptor featureAttributeDescriptor = |
|
128 |
features.next(); |
|
129 |
ef.set(featureAttributeDescriptor.getName(), record[i]); |
|
130 |
i++; |
|
131 |
} |
|
132 |
featureStore.insert(ef); |
|
133 |
} catch (final Exception e) { |
|
134 |
e.printStackTrace(); |
|
135 |
} |
|
136 |
|
|
137 |
} |
|
138 |
|
|
139 |
public IRecordsetIterator iterator() { |
|
140 |
try { |
|
141 |
return new gvRecordsetIterator(featureStore.getFeatureSet(m_Table |
|
142 |
.getQuery())); |
|
143 |
} catch (final DataException e) { |
|
144 |
throw new RuntimeException(e); |
|
145 |
} |
|
146 |
} |
|
147 |
|
|
148 |
public String getFieldName(final int i) { |
|
149 |
return ((FeatureAttributeDescriptor) featureType.get(i)).getName(); |
|
150 |
} |
|
151 |
|
|
152 |
public Class<?> getFieldType(final int i) { |
|
153 |
return featureType.getAttributeDescriptor(i).getDataType() |
|
154 |
.getDefaultClass(); |
|
155 |
} |
|
156 |
|
|
157 |
public int getFieldCount() { |
|
158 |
return featureType.size(); |
|
159 |
} |
|
160 |
|
|
161 |
public long getRecordCount() { |
|
162 |
try { |
|
163 |
return featureStore.getFeatureSet(m_Table.getQuery()).getSize(); |
|
164 |
} catch (final DataException e) { |
|
165 |
e.printStackTrace(); |
|
166 |
} |
|
167 |
return 0; |
|
168 |
} |
|
169 |
|
|
170 |
public void postProcess() { |
|
171 |
try { |
|
172 |
final TableDocument table = |
|
173 |
(TableDocument) ProjectManager.getInstance().createDocument( |
|
174 |
TableManager.TYPENAME, m_sName); |
|
175 |
table.setStore(featureStore); |
|
176 |
} catch (final Exception e) { |
|
177 |
return; |
|
178 |
} |
|
179 |
|
|
180 |
final TableDocument table = FileTools.openTable(m_sFilename, m_sName); |
|
181 |
create(table); |
|
182 |
} |
|
183 |
|
|
184 |
public void open() { |
|
185 |
|
|
186 |
} |
|
187 |
|
|
188 |
public void close() { |
|
189 |
// Nothing to do |
|
190 |
} |
|
191 |
|
|
192 |
public String getFilename() { |
|
193 |
|
|
194 |
return m_sFilename; |
|
195 |
|
|
196 |
} |
|
197 |
|
|
198 |
public void setName(final String name) { |
|
199 |
|
|
200 |
if (m_Table != null) { |
|
201 |
m_Table.setName(name); |
|
202 |
} else { |
|
203 |
m_sName = name; |
|
204 |
} |
|
205 |
|
|
206 |
} |
|
207 |
|
|
208 |
public Object getBaseDataObject() { |
|
209 |
|
|
210 |
return m_Table; |
|
211 |
|
|
212 |
} |
|
213 |
|
|
214 |
public void free() { |
|
215 |
|
|
216 |
m_Table = null; |
|
217 |
|
|
218 |
} |
|
219 |
|
|
220 |
public IOutputChannel getOutputChannel() { |
|
221 |
|
|
222 |
return new FileOutputChannel(m_sFilename); |
|
223 |
|
|
224 |
} |
|
225 |
} |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/gvRasterLayerWrite.java | ||
---|---|---|
1 |
package org.gvsig.geoprocess.lib.sextante.dataObjects; |
|
2 |
|
|
3 |
import java.awt.geom.Rectangle2D; |
|
4 |
|
|
5 |
import es.unex.sextante.core.AnalysisExtent; |
|
6 |
import es.unex.sextante.dataObjects.AbstractRasterLayer; |
|
7 |
import es.unex.sextante.gui.core.SextanteGUI; |
|
8 |
import es.unex.sextante.outputs.IOutputChannel; |
|
9 |
|
|
10 |
import org.cresques.cts.IProjection; |
|
11 |
|
|
12 |
/** |
|
13 |
* |
|
14 |
* @author volaya, nacho brodin (nachobrodin@gmail.com) |
|
15 |
* |
|
16 |
*/ |
|
17 |
public class gvRasterLayerWrite |
|
18 |
extends |
Also available in: Unified diff