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