Statistics
| Revision:

gvsig-mssqlserver / trunk / org.gvsig.mssqlserver / org.gvsig.mssqlserver.provider / src / main / java / org / gvsig / mssqlserver / dal / operations / MSSQLServerFetchFeatureTypeOperation.java @ 5

History | View | Annotate | Download (2.42 KB)

1

    
2
package org.gvsig.mssqlserver.dal.operations;
3

    
4
import java.sql.Connection;
5
import java.sql.ResultSetMetaData;
6
import java.util.List;
7
import org.cresques.cts.IProjection;
8
import org.gvsig.fmap.dal.exception.DataException;
9
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
10
import org.gvsig.fmap.dal.feature.EditableFeatureType;
11
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
12
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.FetchFeatureTypeOperation;
13
import org.gvsig.fmap.geom.Geometry;
14
import org.gvsig.fmap.geom.GeometryLocator;
15
import org.gvsig.fmap.geom.type.GeometryType;
16
import org.gvsig.mssqlserver.dal.MSSQLServerSQLHelper;
17

    
18

    
19
public class MSSQLServerFetchFeatureTypeOperation extends FetchFeatureTypeOperation {
20
    
21
    public MSSQLServerFetchFeatureTypeOperation(
22
            JDBCHelper helper
23
        ) {
24
        super(helper);
25
    }
26
    
27
    public MSSQLServerFetchFeatureTypeOperation(
28
            JDBCHelper helper,
29
            EditableFeatureType featureType,
30
            String dbname,
31
            String schema,
32
            String table,
33
            List<String> primaryKeys,
34
            String defaultGeometryColumn,
35
            IProjection crs
36
        ) {
37
        super(helper, featureType, dbname, schema, table, primaryKeys, defaultGeometryColumn, crs);
38
    }            
39

    
40
    @Override
41
    public void fetch(EditableFeatureType featureType, Connection conn, String dbname, String schema, String table, List<String> pks, String defaultGeometryColumn, IProjection crs) throws DataException {
42
        super.fetch(featureType, conn, dbname, schema, table, pks, defaultGeometryColumn, crs);
43
        ((MSSQLServerSQLHelper)this.helper).setLastUsedFeatureType(featureType);
44
    }
45
    
46
    @Override
47
    protected void fetchGeometryType(
48
            EditableFeatureAttributeDescriptor attr,
49
            ResultSetMetaData rsMetadata,
50
            int colIndex
51
        ) {
52
        try {
53
            GeometryType geomType = GeometryLocator.getGeometryManager().getGeometryType(
54
                    Geometry.TYPES.GEOMETRY,
55
                    Geometry.SUBTYPES.GEOM2D
56
            );
57
            attr.setGeometryType(geomType);
58

    
59
            String typeName = rsMetadata.getColumnTypeName(colIndex);
60
            attr.setAdditionalInfo("SQLServer_type_name",typeName);
61
        } catch (Exception ex) {
62
            logger.warn("Can't get default geometry type.",ex);
63
        }
64
    }
65
}