gvsig-lrs / org.gvsig.lrs / trunk / org.gvsig.lrs / org.gvsig.lrs.lib / org.gvsig.lrs.lib.impl / src / main / java / org / gvsig / lrs / lib / impl / LrsAlgorithmUtils.java @ 16
History | View | Annotate | Download (3.14 KB)
1 |
/*
|
---|---|
2 |
* Copyright 2015 DiSiD Technologies S.L.L. All rights reserved.
|
3 |
*
|
4 |
* Project : DiSiD org.gvsig.lrs.lib.impl
|
5 |
* SVN Id : $Id$
|
6 |
*/
|
7 |
package org.gvsig.lrs.lib.impl; |
8 |
|
9 |
import java.io.File; |
10 |
|
11 |
import org.gvsig.fmap.dal.DALLocator; |
12 |
import org.gvsig.fmap.dal.DataManager; |
13 |
import org.gvsig.fmap.dal.DataServerExplorer; |
14 |
import org.gvsig.fmap.dal.DataServerExplorerParameters; |
15 |
import org.gvsig.fmap.dal.DataStore; |
16 |
import org.gvsig.fmap.dal.DataTypes; |
17 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
18 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
19 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
20 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
21 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
22 |
import org.gvsig.fmap.dal.store.shp.SHPNewStoreParameters; |
23 |
import org.gvsig.fmap.geom.Geometry; |
24 |
import org.gvsig.fmap.geom.GeometryLocator; |
25 |
import org.gvsig.fmap.geom.type.GeometryType; |
26 |
import org.gvsig.lrs.lib.api.exceptions.LrsCreateRouteException; |
27 |
import org.gvsig.tools.dataTypes.DataType; |
28 |
|
29 |
public class LrsAlgorithmUtils { |
30 |
|
31 |
static protected FeatureStore createNewDataStore(NewFeatureStoreParameters newFeatureStoreParameters,FeatureAttributeDescriptor idRouteField) |
32 |
throws Exception{ |
33 |
try {
|
34 |
SHPNewStoreParameters shapeStoreParams = (SHPNewStoreParameters)newFeatureStoreParameters; |
35 |
File file=shapeStoreParams.getFile();
|
36 |
String filePath=file.getPath().substring(0, file.getPath().lastIndexOf(File.separator)); |
37 |
|
38 |
DataManager dataManager = DALLocator.getDataManager(); |
39 |
DataServerExplorerParameters serverParams = |
40 |
dataManager.createServerExplorerParameters("FilesystemExplorer");
|
41 |
serverParams.setDynValue("initialpath", filePath);
|
42 |
DataServerExplorer serverExplorer = |
43 |
dataManager.openServerExplorer(serverParams.getExplorerName(), serverParams); |
44 |
|
45 |
EditableFeatureType featureType = (EditableFeatureType)shapeStoreParams.getDefaultFeatureType(); |
46 |
featureType.add(idRouteField.getName(), idRouteField.getType(), idRouteField.getSize()); |
47 |
EditableFeatureAttributeDescriptor geometryField = featureType.add("Geometry", DataTypes.GEOMETRY);
|
48 |
GeometryType geometryType = GeometryLocator.getGeometryManager().getGeometryType(Geometry.TYPES.MULTICURVE, Geometry.SUBTYPES.GEOM2D); |
49 |
geometryField.setGeometryType(geometryType); |
50 |
|
51 |
featureType.setDefaultGeometryAttributeName("Geometry");
|
52 |
|
53 |
shapeStoreParams.setDefaultFeatureType(featureType); |
54 |
serverExplorer.add("Shape", shapeStoreParams, true); |
55 |
|
56 |
DataStore store = dataManager.createStore(shapeStoreParams); |
57 |
|
58 |
return (FeatureStore)store;
|
59 |
|
60 |
} catch (Exception e) { |
61 |
throw new LrsCreateRouteException("Error creating new dataStore", e); |
62 |
} |
63 |
} |
64 |
|
65 |
|
66 |
static protected Double getAsDouble(Object obj,DataType dataType){ |
67 |
Double result=Double.NaN; |
68 |
if (dataType.equals(DataTypes.DOUBLE)){
|
69 |
result=(Double)obj;
|
70 |
}else if(dataType.isNumeric()){ |
71 |
result=Double.valueOf(String.valueOf(obj)); |
72 |
} |
73 |
return result;
|
74 |
} |
75 |
} |