Statistics
| Revision:

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
}