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 | 5 | jjdelcerro | |
---|---|---|---|
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 | } |