Revision 29326 branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgresql/PostgreSQLStoreProvider.java
PostgreSQLStoreProvider.java | ||
---|---|---|
45 | 45 |
import org.gvsig.fmap.dal.feature.FeatureType; |
46 | 46 |
import org.gvsig.fmap.dal.feature.spi.FeatureProvider; |
47 | 47 |
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider; |
48 |
import org.gvsig.fmap.dal.spi.DataStoreProviderServices; |
|
48 | 49 |
import org.gvsig.fmap.dal.store.jdbc.JDBCHelper; |
49 | 50 |
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter; |
50 | 51 |
import org.gvsig.fmap.geom.Geometry; |
51 | 52 |
import org.gvsig.tools.ToolsLocator; |
52 |
import org.gvsig.tools.dynobject.DelegatedDynObject; |
|
53 | 53 |
import org.gvsig.tools.dynobject.DynClass; |
54 | 54 |
import org.gvsig.tools.dynobject.DynObjectManager; |
55 | 55 |
import org.slf4j.Logger; |
... | ... | |
66 | 66 |
private static DynClass DYNCLASS = null; |
67 | 67 |
|
68 | 68 |
|
69 |
protected PostgreSQLStoreParameters pgParams; |
|
70 |
|
|
71 |
|
|
72 | 69 |
protected static void registerDynClass() { |
73 | 70 |
DynObjectManager dynman = ToolsLocator.getDynObjectManager(); |
74 | 71 |
DynClass dynClass; |
... | ... | |
80 | 77 |
} |
81 | 78 |
} |
82 | 79 |
|
83 |
public PostgreSQLStoreProvider() { |
|
84 |
super(); |
|
85 |
} |
|
86 |
|
|
87 |
public PostgreSQLStoreProvider(PostgreSQLStoreParameters params) |
|
80 |
public PostgreSQLStoreProvider(PostgreSQLStoreParameters params, |
|
81 |
DataStoreProviderServices storeServices) |
|
88 | 82 |
throws InitializeException { |
89 |
super();
|
|
90 |
this.init(params);
|
|
83 |
super(params, storeServices, ToolsLocator.getDynObjectManager()
|
|
84 |
.createDynObject(DYNCLASS));
|
|
91 | 85 |
} |
92 | 86 |
|
93 |
protected void init(PostgreSQLStoreParameters params) |
|
94 |
throws InitializeException { |
|
95 |
this.pgParams = params; |
|
96 |
super.init(params); |
|
97 |
|
|
98 |
this.metadata = (DelegatedDynObject) ToolsLocator |
|
99 |
.getDynObjectManager().createDynObject(DYNCLASS); |
|
100 |
|
|
101 |
this.metadata.setDynValue("DefaultSRS", null); |
|
102 |
this.metadata.setDynValue("Envelope", null); |
|
87 |
private PostgreSQLStoreParameters getPGParameters() { |
|
88 |
return (PostgreSQLStoreParameters) this.getParameters(); |
|
103 | 89 |
} |
104 | 90 |
|
105 | 91 |
protected JDBCHelper createHelper() throws InitializeException { |
106 |
return new PostgreSQLHelper(this, pgParams);
|
|
92 |
return new PostgreSQLHelper(this, getPGParameters());
|
|
107 | 93 |
} |
108 | 94 |
|
109 | 95 |
protected String fixFilter(String filter) { |
... | ... | |
152 | 138 |
public DataServerExplorer getExplorer() throws ReadException { |
153 | 139 |
DataManager manager = DALLocator.getDataManager(); |
154 | 140 |
PostgreSQLServerExplorerParameters exParams; |
141 |
PostgreSQLStoreParameters params = getPGParameters(); |
|
155 | 142 |
try { |
156 | 143 |
exParams = (PostgreSQLServerExplorerParameters) manager |
157 | 144 |
.createServerExplorerParameters(PostgreSQLServerExplorer.NAME); |
... | ... | |
164 | 151 |
exParams.setCatalog(params.getCatalog()); |
165 | 152 |
exParams.setSchema(params.getSchema()); |
166 | 153 |
exParams.setJDBCDriverClassName(params.getJDBCDriverClassName()); |
167 |
exParams.setUseSSL(pgParams.getUseSSL());
|
|
154 |
exParams.setUseSSL(params.getUseSSL()); |
|
168 | 155 |
|
169 | 156 |
return manager.createServerExplorer(exParams); |
170 | 157 |
} catch (DataException e) { |
... | ... | |
203 | 190 |
|
204 | 191 |
public boolean canWriteGeometry(int geometryType, int geometrySubtype) |
205 | 192 |
throws DataException { |
206 |
FeatureAttributeDescriptor geomAttr = this.store |
|
207 |
.getDefaultFeatureType().getAttributeDescriptor( |
|
208 |
this.store.getDefaultFeatureType() |
|
193 |
FeatureType type = getFeatureStore().getDefaultFeatureType(); |
|
194 |
FeatureAttributeDescriptor geomAttr = type.getAttributeDescriptor(type |
|
209 | 195 |
.getDefaultGeometryAttributeName()); |
210 | 196 |
if (geomAttr == null) { |
211 | 197 |
return false; |
... | ... | |
276 | 262 |
protected String getSqlStatementAddField(FeatureAttributeDescriptor attr, |
277 | 263 |
List additionalStatement) throws DataException { |
278 | 264 |
if (attr.getDataType() == DataTypes.GEOMETRY) { |
265 |
PostgreSQLStoreParameters params = getPGParameters(); |
|
279 | 266 |
additionalStatement.add(((PostgreSQLHelper) helper) |
280 | 267 |
.getSqlGeometyFieldAdd(attr, params.getTable(), params |
281 | 268 |
.getSchema())); |
... | ... | |
286 | 273 |
} |
287 | 274 |
private Object getSqlGeometyFieldDrop(FeatureAttributeDescriptor attr) { |
288 | 275 |
StringBuilder strb = new StringBuilder(); |
289 |
|
|
276 |
PostgreSQLStoreParameters params = getPGParameters(); |
|
290 | 277 |
strb.append("Delete from geometry_columns where f_geometry_column = '"); |
291 | 278 |
strb.append(attr.getName()); |
292 | 279 |
strb.append("' and f_table_nam = '"); |
... | ... | |
325 | 312 |
List actions = super.getSqlStatementAlterField(attrOrg, attrTrg, |
326 | 313 |
additionalStatement); |
327 | 314 |
StringBuilder strb; |
315 |
PostgreSQLStoreParameters params = getPGParameters(); |
|
328 | 316 |
if (attrOrg.getDataType() != attrTrg.getDataType()) { |
329 | 317 |
if (attrOrg.getDataType() == DataTypes.GEOMETRY) { |
330 | 318 |
additionalStatement.add(getSqlGeometyFieldDrop(attrOrg)); |
Also available in: Unified diff