Revision 29326 branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgresql/PostgreSQLStoreProvider.java

View differences:

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