Revision 27753

View differences:

branches/v2_0_0_prep/libraries/libFMap_daldb/src-test/org/gvsig/fmap/dal/store/postgesql/TestPostgreSQL.java
102 102
	}
103 103

  
104 104

  
105
	public void testCloserConnection() {
106
		try {
105
	public void testCloserConnection() throws Exception {
107 106

  
108
			DataStoreParameters params = this.getDefaultDataStoreParameters();
107
		DataStoreParameters params = this.getDefaultDataStoreParameters();
109 108

  
110
			FeatureStore store = null;
109
		FeatureStore store = null;
110
		try {
111 111
			store = (FeatureStore) dataManager.createStore(params);
112
		} catch (Exception e) {
113
			e.printStackTrace();
114
			throw e;
115
		}
112 116

  
113
			FeatureQuery query = store.createFeatureQuery();
117
		FeatureQuery query = store.createFeatureQuery();
114 118

  
115
			query.getOrder().add("gid", true);
119
		query.getOrder().add("gid", true);
116 120

  
117
			query.setFilter(new Evaluator() {
121
		query.setFilter(new Evaluator() {
118 122

  
119
				public Object evaluate(EvaluatorData data)
120
				throws EvaluatorException {
121
					// TODO Auto-generated method stub
122
					return Boolean.TRUE;
123
				}
123
			public Object evaluate(EvaluatorData data)
124
					throws EvaluatorException {
125
				// TODO Auto-generated method stub
126
				return Boolean.TRUE;
127
			}
124 128

  
125
				public String getCQL() {
126
					return "true = true";
127
				}
129
			public String getCQL() {
130
				return "true = true";
131
			}
128 132

  
129
				public String getDescription() {
130
					// TODO Auto-generated method stub
131
					return null;
132
				}
133
			public String getDescription() {
134
				// TODO Auto-generated method stub
135
				return null;
136
			}
133 137

  
134
				public String getName() {
135
					return "AlwaysTrue";
136
				}
138
			public String getName() {
139
				return "AlwaysTrue";
140
			}
137 141

  
138
				public EvaluatorFieldsInfo getFieldsInfo() {
139
					// TODO Auto-generated method stub
140
					return null;
141
				}
142
			public EvaluatorFieldsInfo getFieldsInfo() {
143
				// TODO Auto-generated method stub
144
				return null;
145
			}
142 146

  
143
			});
147
		});
144 148

  
145
			FeatureStoreTransform transform = new StringsToLowerTransform();
146
			transform.setFeatureStore(store);
149
		FeatureStoreTransform transform = new StringsToLowerTransform();
150
		transform.setFeatureStore(store);
147 151

  
148
			store.getTransforms().add(transform);
152
		store.getTransforms().add(transform);
149 153

  
150
			transform = new StringsToLowerTransform();
151
			transform.setFeatureStore(store);
154
		transform = new StringsToLowerTransform();
155
		transform.setFeatureStore(store);
152 156

  
153
			store.getTransforms().add(transform);
157
		store.getTransforms().add(transform);
154 158

  
155
			transform = new StringsToLowerTransform();
156
			transform.setFeatureStore(store);
159
		transform = new StringsToLowerTransform();
160
		transform.setFeatureStore(store);
157 161

  
158
			store.getTransforms().add(transform);
162
		store.getTransforms().add(transform);
159 163

  
160
			for (int i = 0; i < 30; i++) {
161
				// this.fullStoreIteratorTest(store);
164
		for (int i = 0; i < 30; i++) {
165
			// this.fullStoreIteratorTest(store);
162 166

  
163
				 this.testIterationFastAndStandart(store, query);
164
			}
167
			this.testIterationFastAndStandart(store, query);
168
		}
165 169

  
166 170

  
167
			store.dispose();
171
		store.dispose();
168 172

  
169 173

  
170

  
171
		} catch (DataException e) {
172
			e.printStackTrace();
173
			fail();
174
		}
175

  
176 174
	}
177 175
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/resource/db/DBResourceLibrary.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 IVER T.I   {{Task}}
26
*/
27

  
28
/**
29
 *
30
 */
31
package org.gvsig.fmap.dal.resource.db;
32

  
33
import org.gvsig.tools.locator.BaseLibrary;
34
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
35

  
36
/**
37
 * @author jmvivo
38
 *
39
 */
40
public class DBResourceLibrary extends BaseLibrary {
41

  
42
	public void postInitialize() throws ReferenceNotRegisteredException {
43
		// TODO Auto-generated method stub
44
		super.postInitialize();
45
		DBResourceParameters.registerDynClass();
46
	}
47

  
48
}
0 49

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/resource/db/DBParameters.java
28 28
package org.gvsig.fmap.dal.resource.db;
29 29

  
30 30
public interface DBParameters {
31

  
32
	public static final String DYNFIELDNAME_HOST = "host";
33
	public static final String DYNFIELDNAME_PORT = "port";
34
	public static final String DYNFIELDNAME_DBNAME = "dbname";
35
	public static final String DYNFIELDNAME_USER = "dbuser";
36
	public static final String DYNFIELDNAME_PASSWORD = "password";
37

  
31 38
	public String getHost();
32 39

  
33 40
	public Integer getPort();
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/resource/db/DBResourceParameters.java
50 50

  
51 51
    public DBResourceParameters() {
52 52
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
53
				.getDynObjectManager().createDynObject(registerDynClass());
53
				.getDynObjectManager().createDynObject(getDynClassName());
54 54
	}
55 55

  
56
    private DynClass registerDynClass() {
56
    protected abstract String getDynClassName();
57

  
58
	static void registerDynClass() {
57 59
		DynObjectManager dynman = ToolsLocator.getDynObjectManager();
58 60
		DynClass dynClass = dynman.get(DYNCLASS_NAME);
59 61
		DynField field;
......
86 88
			field.setDescription("Password");
87 89
			field.setType(DataTypes.STRING);
88 90
		}
89
		return dynClass;
90 91
	}
91 92

  
92 93

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/serverexplorer/db/DBServerExplorerParameters.java
1 1
package org.gvsig.fmap.dal.serverexplorer.db;
2 2

  
3 3
import org.gvsig.fmap.dal.DataServerExplorerParameters;
4
import org.gvsig.fmap.dal.DataTypes;
4
import org.gvsig.fmap.dal.resource.db.DBResourceParameters;
5 5
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
6 6
import org.gvsig.tools.ToolsLocator;
7 7
import org.gvsig.tools.dynobject.DelegatedDynObject;
8 8
import org.gvsig.tools.dynobject.DynClass;
9
import org.gvsig.tools.dynobject.DynField;
10 9
import org.gvsig.tools.dynobject.DynObjectManager;
11 10

  
12 11
public abstract class DBServerExplorerParameters extends AbstractDataParameters
13
		implements DataServerExplorerParameters {
12
		implements DataServerExplorerParameters, DBConnectionParameter {
14 13

  
15 14
    public static final String DYNCLASS_NAME = "DBServerExplorerParameters";
16 15

  
17
	public static final String DYNFIELDNAME_HOST = "host";
18
	public static final String DYNFIELDNAME_PORT = "port";
19
	public static final String DYNFIELDNAME_DBNAME = "dbname";
20
	public static final String DYNFIELDNAME_USER = "dbuser";
21
	public static final String DYNFIELDNAME_PASSWORD = "password";
22 16

  
23

  
24 17
	public DBServerExplorerParameters() {
25 18
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
26 19
				.getDynObjectManager()
......
30 23
	protected DynClass registerDynClass() {
31 24
	   	DynObjectManager dynman = ToolsLocator.getDynObjectManager();
32 25
    	DynClass dynClass = dynman.get(DYNCLASS_NAME);
33
    	DynField field;
34 26
    	if (dynClass == null) {
35 27
    		dynClass = dynman.add(DYNCLASS_NAME);
36 28

  
37
			field = dynClass.addDynField(DYNFIELDNAME_HOST);
38
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
39
			field.setDescription("DB Host");
40
			field.setMandatory(true);
41
			field.setType(DataTypes.STRING);
29
    		DynClass dbResourceDynClass = dynman
30
					.get(DBResourceParameters.DYNCLASS_NAME);
42 31

  
43
			field = dynClass.addDynField(DYNFIELDNAME_PORT);
44
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
45
			field.setDescription("Host Port");
46
			field.setType(DataTypes.INT);
32
			dynClass.extend(dbResourceDynClass);
47 33

  
48
			field = dynClass.addDynField(DYNFIELDNAME_DBNAME);
49
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
50
			field.setDescription("DB name");
51
			field.setType(DataTypes.STRING);
52

  
53
			field = dynClass.addDynField(DYNFIELDNAME_USER);
54
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
55
			field.setDescription("User name");
56
			field.setType(DataTypes.STRING);
57

  
58
			field = dynClass.addDynField(DYNFIELDNAME_PASSWORD);
59
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
60
			field.setDescription("Password");
61
			field.setType(DataTypes.STRING);
62

  
63

  
64 34
    	}
65 35
    	return dynClass;
66 36
	}
67 37

  
68
	public String getDb() {
69
		return (String) this.getDynValue("db");
70
	}
71 38

  
72
	public void setDb(String db) {
73
		this.setDynValue("db", db);
39
	public String getExplorerName() {
40
		return DBServerExplorer.NAME;
74 41
	}
75 42

  
43

  
76 44
	public String getHost() {
77
		return (String) this.getDynValue("host");
45
		return (String) this.getDynValue(DYNFIELDNAME_HOST);
78 46
	}
79 47

  
80
	public void setHost(String host) {
81
		this.setDynValue("host", host);
48
	public Integer getPort() {
49
		return (Integer) this.getDynValue(DYNFIELDNAME_PORT);
82 50
	}
83 51

  
84
	public String getPort() {
85
		return (String) this.getDynValue("port");
52
	public String getDBName() {
53
		return (String) this.getDynValue(DYNFIELDNAME_DBNAME);
86 54
	}
87 55

  
88
	public void setPort(String port) {
89
		this.setDynValue("port", port);
56
	public String getUser() {
57
		return (String) this.getDynValue(DYNFIELDNAME_USER);
90 58
	}
91 59

  
92
	public String getSchema() {
93
		return (String) this.getDynValue("schema");
60
	public String getPassword() {
61
		return (String) this.getDynValue(DYNFIELDNAME_PASSWORD);
94 62
	}
95 63

  
96
	public void setSchema(String schema) {
97
		this.setDynValue("schema", schema);
64
	public void setHost(String host) {
65
		this.setDynValue(DYNFIELDNAME_HOST, host);
98 66
	}
99 67

  
100
	public String getPassw() {
101
		return (String) this.getDynValue("passw");
68
	public void setPort(int port) {
69
		this.setDynValue(DYNFIELDNAME_PORT, new Integer(port));
102 70
	}
103 71

  
104
	public void setPassw(String passw) {
105
		this.setDynValue("passw", passw);
72
	public void setPort(Integer port) {
73
		this.setDynValue(DYNFIELDNAME_PORT, port);
106 74
	}
107 75

  
108
	public String getUser() {
109
		return (String) this.getDynValue("user");
76
	public void setDBName(String dbName) {
77
		this.setDynValue(DYNFIELDNAME_DBNAME, dbName);
110 78
	}
111 79

  
112 80
	public void setUser(String user) {
113
		this.setDynValue("user", user);
81
		this.setDynValue(DYNFIELDNAME_USER, user);
114 82
	}
115 83

  
116
	public String getCatalog() {
117
		return (String) this.getDynValue("catalog");
84
	public void setPassword(String password) {
85
		this.setDynValue(DYNFIELDNAME_PASSWORD, password);
118 86
	}
119 87

  
120
	public void setCatalog(String catalog) {
121
		this.setDynValue("catalog", catalog);
122
	}
123

  
124
	public String getExplorerName() {
125
		return DBServerExplorer.NAME;
126
	}
127

  
128 88
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/serverexplorer/db/DBConnectionParameter.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 IVER T.I   {{Task}}
26
*/
27

  
28
/**
29
 * 
30
 */
31
package org.gvsig.fmap.dal.serverexplorer.db;
32

  
33
import org.gvsig.fmap.dal.resource.db.DBParameters;
34

  
35
/**
36
 * @author jmvivo
37
 *
38
 */
39
public interface DBConnectionParameter extends DBParameters {
40

  
41
}
0 42

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/DALDbLibrary.java
30 30
 */
31 31
package org.gvsig.fmap.dal;
32 32

  
33
import org.gvsig.fmap.dal.resource.db.DBResourceLibrary;
33 34
import org.gvsig.fmap.dal.resource.spi.ResourceManagerProviderServices;
34 35
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
35 36
import org.gvsig.tools.locator.BaseLibrary;
......
40 41
 *
41 42
 */
42 43
public class DALDbLibrary extends BaseLibrary {
44
	private DBResourceLibrary dbResourceLibrary;
43 45

  
44 46
    public void postInitialize() throws ReferenceNotRegisteredException {
45 47
		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator
......
48 50
		ResourceManagerProviderServices resman = (ResourceManagerProviderServices) DALLocator
49 51
				.getResourceManager();
50 52

  
51
		// Nothing to do
53
		dbResourceLibrary.postInitialize();
52 54
	}
55

  
56
	public void initialize() throws ReferenceNotRegisteredException {
57
		super.initialize();
58
		dbResourceLibrary = new DBResourceLibrary();
59
		dbResourceLibrary.initialize();
60
	}
53 61
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgesql/PostgreSQLStoreProvider.java
126 126
				new Object[] { params.getHost(),
127 127
						params.getPort(), params.getDBName(), params.getUser(),
128 128
						params.getPassword(),
129
								PostgreSQLLibrary.JDCB_DRIVER_NAME,
129
								PostgreSQLLibrary.DEFAULT_JDCB_DRIVER_NAME,
130 130
								params.getUseSSL() });
131 131
		resource.addConsumer(this);
132 132

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgesql/PostgreSQLResourceParameters.java
36 36

  
37 37
public class PostgreSQLResourceParameters extends JDBCResourceParameters {
38 38

  
39
	private static DynClass DYNCLASS = null;
40

  
39 41
	public static final String DYNCLASS_NAME = "PostgreSQLResourceParameters";
40 42

  
41 43
	public static final String DYNFIELDNAME_USESSL = "usessl";
......
43 45
	public PostgreSQLResourceParameters() {
44 46
		super();
45 47
	}
48

  
46 49
    public PostgreSQLResourceParameters(String host, Integer port,
47 50
			String dbName, String user, String password,
48 51
			String jdbcDriverClassName, Boolean ssl) {
......
52 55
		}
53 56
	}
54 57

  
55
	private DynClass registerDynClass() {
58
	protected static void registerDynClass() {
56 59
		DynObjectManager dynman = ToolsLocator.getDynObjectManager();
57 60
		DynClass dynClass = dynman.get(DYNCLASS_NAME);
58 61
		DynField field;
......
67 70
			field.setType(DataTypes.BOOLEAN);
68 71
			field.setDefaultValue(Boolean.FALSE);
69 72

  
73
			field = dynClass.addDynField(DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME);
74
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
75
			field.setDescription("JDBC Driver class");
76
			field.setMandatory(true);
77
			field.setType(DataTypes.STRING);
78
			field.setDefaultValue(PostgreSQLLibrary.DEFAULT_JDCB_DRIVER_NAME);
79

  
80

  
70 81
		}
71
		return dynClass;
82
		DYNCLASS = dynClass;
72 83
	}
73 84

  
74 85

  
......
93 104
	public void setUseSSL(boolean useSSL) {
94 105
		this.setDynValue(DYNFIELDNAME_USESSL, new Boolean(useSSL));
95 106
	}
107

  
108
	protected String getDynClassName() {
109
		return DYNCLASS_NAME;
110
	}
96 111
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgesql/PostgreSQLStoreParameters.java
28 28
package org.gvsig.fmap.dal.store.postgesql;
29 29

  
30 30
import org.gvsig.fmap.dal.DataTypes;
31
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
31 32
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
32 33
import org.gvsig.tools.ToolsLocator;
33 34
import org.gvsig.tools.dynobject.DelegatedDynObject;
......
38 39
public class PostgreSQLStoreParameters extends JDBCStoreParameters {
39 40
    public static final String DYNCLASS_NAME = "PostgreSQLStoreParameters";
40 41

  
41
    private static DynClass DYNCLASS = null;
42

  
43
	public static final String DYNFIELDNAME_CATALOG = "catalog";
44
	public static final String DYNFIELDNAME_SCHEMA = "schema";
45 42
	public static final String DYNFIELDNAME_USESSL = "usessl";
46
	public static final String DYNFIELDNAME_TABLE = "table";
47
	public static final String DYNFIELDNAME_SQL = "sql";
48
	public static final String DYNFIELDNAME_FIELDS = "fields";
49
	public static final String DYNFIELDNAME_INITIALFILTER = "initialfilter";
50
	public static final String DYNFIELDNAME_INITIALORDER = "initialorder";
51
	public static final String DYNFIELDNAME_PKFIELDS = "pkfields";
52
	public static final String DYNFIELDNAME_DEFAULTGEOMETRY = "defaultgeometry";
53 43

  
54 44

  
55 45
    protected static void registerDynClass() {
......
61 51

  
62 52
			dynClass.extend(JDBCStoreParameters.DYNCLASS_NAME);
63 53

  
64
			field = dynClass.addDynField(DYNFIELDNAME_USER);
65
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
66
			field.setDescription("User name");
67
			field.setType(DataTypes.STRING);
68

  
69
			field = dynClass.addDynField(DYNFIELDNAME_PASSWORD);
70
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
71
			field.setDescription("Password");
72
			field.setType(DataTypes.STRING);
73

  
74 54
			field = dynClass.addDynField(DYNFIELDNAME_USESSL);
75 55
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
76 56
			field.setDescription("Use SSL");
77 57
			field.setType(DataTypes.BOOLEAN);
78 58

  
79
			field = dynClass.addDynField(DYNFIELDNAME_CATALOG);
80
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
81
			field.setDescription("Catalog name");
82
			field.setType(DataTypes.STRING);
83

  
84
			field = dynClass.addDynField(DYNFIELDNAME_SCHEMA);
85
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
86
			field.setDescription("Schema name");
87
			field.setType(DataTypes.STRING);
88

  
89
			field = dynClass.addDynField(DYNFIELDNAME_TABLE);
90
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
91
			field.setDescription("Table/View name");
92
			field.setType(DataTypes.STRING);
93

  
94
			field = dynClass.addDynField(DYNFIELDNAME_SQL);
95
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
96
			field.setDescription("SQL Query to use");
97
			field.setType(DataTypes.STRING);
98

  
99
			field = dynClass.addDynField(DYNFIELDNAME_FIELDS);
100
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
101
			field.setDescription("Fields to use (coma separeted)");
102
			field.setType(DataTypes.STRING);
103

  
104
			field = dynClass.addDynField(DYNFIELDNAME_INITIALFILTER);
105
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
106
			field.setDescription("Initial filter");
107
			field.setType(DataTypes.STRING);
108

  
109
			field = dynClass.addDynField(DYNFIELDNAME_INITIALORDER);
110
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
111
			field.setDescription("Initial order");
112
			field.setType(DataTypes.STRING);
113

  
114
			field = dynClass.addDynField(DYNFIELDNAME_PKFIELDS);
115
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
116
			field.setDescription("Fields of the Primary Key");
117
			field.setType(DataTypes.STRING);
118

  
119
			field = dynClass.addDynField(DYNFIELDNAME_DEFAULTGEOMETRY);
120
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
121
			field.setDescription("Default geometry field");
122
			field.setType(DataTypes.STRING);
123

  
124 59
		}
125 60

  
126 61
	}
......
146 81
		return PostgreSQLStoreProvider.DESCRIPTION;
147 82
	}
148 83

  
149
	public String getCatalog() {
150
		return (String) this.getDynValue(DYNFIELDNAME_CATALOG);
151
	}
152

  
153
	public void setCatalog(String catalog) {
154
		this.setDynValue(DYNFIELDNAME_CATALOG, catalog);
155
	}
156

  
157
	public String getSchema() {
158
		return (String) this.getDynValue(DYNFIELDNAME_SCHEMA);
159
	}
160

  
161
	public void setSchema(String schema) {
162
		this.setDynValue(DYNFIELDNAME_SCHEMA, schema);
163
	}
164

  
165 84
	public Boolean getUseSSL() {
166 85
		return (Boolean) this.getDynValue(DYNFIELDNAME_USESSL);
167 86
	}
......
174 93
		this.setDynValue(DYNFIELDNAME_USESSL, new Boolean(useSSL));
175 94
	}
176 95

  
177
	public String getTable() {
178
		return (String) this.getDynValue(DYNFIELDNAME_TABLE);
179
	}
180 96

  
181
	public void setTable(String table) {
182
		this.setDynValue(DYNFIELDNAME_TABLE, table);
183
	}
184 97

  
185
	public String getFieldsString() {
186
		return (String) this.getDynValue(DYNFIELDNAME_FIELDS);
187
	}
188

  
189
	public String[] getFields() {
190
		String fields = (String) this.getDynValue(DYNFIELDNAME_FIELDS);
191
		if (fields == null) {
192
			return null;
193
		}
194
		// FIXME check for fields with spaces and special chars
195
		return fields.split(",");
196
	}
197

  
198
	public void setFields(String fields) {
199
		this.setDynValue(DYNFIELDNAME_FIELDS, fields);
200
	}
201

  
202
	public void setFields(String[] fields) {
203
		StringBuilder str = new StringBuilder();
204
		for (int i = 0; i < fields.length - 1; i++) {
205
			str.append(fields[i]);
206
			str.append(",");
207
		}
208
		str.append(fields.length - 1);
209

  
210
		this.setDynValue(DYNFIELDNAME_FIELDS, fields);
211
	}
212

  
213
	public String getSQL() {
214
		return (String) this.getDynValue(DYNFIELDNAME_SQL);
215
	}
216

  
217
	public void setSQL(String sql) {
218
		this.setDynValue(DYNFIELDNAME_SQL, sql);
219
	}
220

  
221
	public String getInitialFilter() {
222
		return (String) this.getDynValue(DYNFIELDNAME_INITIALFILTER);
223
	}
224

  
225
	public void setInitialFilter(String initialFilter) {
226
		this.setDynValue(DYNFIELDNAME_INITIALFILTER, initialFilter);
227
	}
228

  
229
	public String getInitialOrder() {
230
		return (String) this.getDynValue(DYNFIELDNAME_INITIALORDER);
231
	}
232

  
233
	public void setInitialOrder(String order) {
234
		this.setDynValue(DYNFIELDNAME_INITIALORDER, order);
235
	}
236

  
237

  
238
	public String getPkFieldsString() {
239
		return (String) this.getDynValue(DYNFIELDNAME_PKFIELDS);
240
	}
241

  
242
	public String[] getPkFields() {
243
		String fields = (String) this.getDynValue(DYNFIELDNAME_PKFIELDS);
244
		if (fields == null) {
245
			return null;
246
		}
247
		// FIXME check for fields with spaces and special chars
248
		return fields.split(",");
249
	}
250

  
251
	public void setPkFields(String fields) {
252
		this.setDynValue(DYNFIELDNAME_PKFIELDS, fields);
253
	}
254

  
255
	public void setPkFields(String[] fields) {
256
		StringBuilder str = new StringBuilder();
257
		for (int i = 0; i < fields.length - 1; i++) {
258
			str.append(fields[i]);
259
			str.append(",");
260
		}
261
		str.append(fields.length - 1);
262

  
263
		this.setDynValue(DYNFIELDNAME_PKFIELDS, fields);
264
	}
265

  
266

  
267 98
	public String tableID() {
268 99
		if (this.getSchema() == null || this.getSchema() == "") {
269 100
			return this.getTable();
......
293 124
		return str.toString();
294 125
	}
295 126

  
127
	public void validate() throws ValidateDataParametersException {
128
		if (getJDBCDriverClassName() == null) {
129
			setJDBCDriverClassName(PostgreSQLLibrary.DEFAULT_JDCB_DRIVER_NAME);
130
		}
131
		if (getPort() == null) {
132
			setPort(new Integer(5432));
133
		}
134
		super.validate();
135
	}
136

  
296 137
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgesql/PostgreSQLUtils.java
52 52
	}
53 53

  
54 54
	PostgreSQLResourceParameters getResourceParameters(
55
			PostgreSQLStoreParameters storeParameters) {
56
		PostgreSQLResourceParameters result = new PostgreSQLResourceParameters();
55
			PostgreSQLStoreParameters stParams) {
56
		PostgreSQLResourceParameters result = new PostgreSQLResourceParameters(
57
				stParams.getHost(), 
58
				stParams.getPort(),
59
				stParams.getDBName(), 
60
				stParams.getUser(),
61
				stParams.getPassword(), 
62
				stParams.getJDBCDriverClassName(), 
63
				stParams.getUseSSL());
57 64

  
58
		result.setHost(storeParameters.getHost());
59
		result.setPort(storeParameters.getPort());
60
		result.setDBName(storeParameters.getDBName());
61
		result.setUser(storeParameters.getUser());
62
		result.setPassword(storeParameters.getPassword());
63
		result.setUseSSL(storeParameters.getUseSSL());
64 65
		return result;
65 66
	}
66 67

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgesql/PostgreSQLLibrary.java
37 37
public class PostgreSQLLibrary extends BaseLibrary {
38 38

  
39 39

  
40
	static String JDCB_DRIVER_NAME = "org.postgresql.Driver";
40
	static String DEFAULT_JDCB_DRIVER_NAME = "org.postgresql.Driver";
41 41

  
42 42
//	static PostgreSQLResourceParameters getResourceParameters(
43 43
//			PostgreSQLServerexplorerParameters serverExplorerParameters) {
......
47 47

  
48 48
	public void initialize() throws ReferenceNotRegisteredException {
49 49
		super.initialize();
50
		try {
51
			Class.forName("org.postgresql.Driver");
52
		} catch (ClassNotFoundException e) {
53
			// FIXME Exception
54
			throw new RuntimeException(e);
55
		}
56

  
57 50
	}
58 51

  
59 52
	public void postInitialize() throws ReferenceNotRegisteredException {
......
62 55
    	ResourceManagerProviderServices resman = (ResourceManagerProviderServices) DALLocator
63 56
				.getResourceManager();
64 57

  
58
    	PostgreSQLResourceParameters.registerDynClass();
59

  
65 60
    	if (!resman.getResourceProviders().contains(PostgreSQLResource.NAME)) {
66 61
			resman.register(PostgreSQLResource.NAME,
67 62
					PostgreSQLResource.DESCRIPTION, PostgreSQLResource.class,
68 63
					PostgreSQLResourceParameters.class);
69 64
		}
70 65

  
66

  
71 67
    	PostgreSQLStoreParameters.registerDynClass();
72 68
		// TODO PostgreSQLStoreParameters.registerDynClass();
73 69
		PostgreSQLStoreProvider.registerDynClass();
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/jdbc/JDBCStoreParameters.java
29 29

  
30 30
import org.gvsig.fmap.dal.DataStoreParameters;
31 31
import org.gvsig.fmap.dal.DataTypes;
32
import org.gvsig.fmap.dal.resource.db.DBParameters;
33 32
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
34 33
import org.gvsig.tools.ToolsLocator;
35 34
import org.gvsig.tools.dynobject.DynClass;
......
38 37

  
39 38
public abstract class JDBCStoreParameters extends AbstractDataParameters
40 39
		implements
41
		DataStoreParameters, DBParameters {
40
		DataStoreParameters, JDBCConnectionParameters {
42 41

  
43 42
	public static final String DYNCLASS_NAME = "JDBCStoreParameters";
44 43

  
45
	public static final String DYNFIELDNAME_HOST = "host";
46
	public static final String DYNFIELDNAME_PORT = "port";
47
	public static final String DYNFIELDNAME_DBNAME = "dbname";
48
	public static final String DYNFIELDNAME_USER = "dbuser";
49
	public static final String DYNFIELDNAME_PASSWORD = "password";
44
	public static final String DYNFIELDNAME_SQL = "sql";
45
	public static final String DYNFIELDNAME_FIELDS = "fields";
46
	public static final String DYNFIELDNAME_INITIALFILTER = "initialfilter";
47
	public static final String DYNFIELDNAME_INITIALORDER = "initialorder";
48
	public static final String DYNFIELDNAME_PKFIELDS = "pkfields";
49
	public static final String DYNFIELDNAME_DEFAULTGEOMETRY = "defaultgeometry";
50
	public static final String DYNFIELDNAME_TABLE = "table";
50 51

  
52

  
51 53
    protected static void registerDynClass() {
52 54
		DynObjectManager dynman = ToolsLocator.getDynObjectManager();
53 55
		DynClass dynClass = dynman.get(DYNCLASS_NAME);
......
55 57
		if (dynClass == null) {
56 58
			dynClass = dynman.add(DYNCLASS_NAME);
57 59

  
58
			field = dynClass.addDynField(DYNFIELDNAME_HOST);
60
			DynClass jdbcResource = dynman
61
					.get(JDBCResourceParameters.DYNCLASS_NAME);
62

  
63
			dynClass.extend(jdbcResource);
64

  
65
			field = dynClass.addDynField(DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME);
59 66
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
60
			field.setDescription("DB Host");
67
			field.setDescription("JDBC Driver class");
61 68
			field.setMandatory(true);
62 69
			field.setType(DataTypes.STRING);
63 70

  
64
			field = dynClass.addDynField(DYNFIELDNAME_PORT);
71
			field = dynClass.addDynField(DYNFIELDNAME_CATALOG);
65 72
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
66
			field.setDescription("Host Port");
67
			field.setType(DataTypes.INT);
73
			field.setDescription("DB Catalog");
74
			field.setType(DataTypes.STRING);
68 75

  
69
			field = dynClass.addDynField(DYNFIELDNAME_DBNAME);
76
			field = dynClass.addDynField(DYNFIELDNAME_SCHEMA);
70 77
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
71
			field.setDescription("DB name");
78
			field.setDescription("DB Schema");
72 79
			field.setType(DataTypes.STRING);
73 80

  
74
			field = dynClass.addDynField(DYNFIELDNAME_USER);
81

  
82
			field = dynClass.addDynField(DYNFIELDNAME_TABLE);
75 83
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
76
			field.setDescription("User name");
84
			field.setDescription("Table/View name");
77 85
			field.setType(DataTypes.STRING);
78 86

  
79
			field = dynClass.addDynField(DYNFIELDNAME_PASSWORD);
87
			field = dynClass.addDynField(DYNFIELDNAME_SQL);
80 88
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
81
			field.setDescription("Password");
89
			field.setDescription("SQL Query to use");
82 90
			field.setType(DataTypes.STRING);
91

  
92
			field = dynClass.addDynField(DYNFIELDNAME_FIELDS);
93
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
94
			field.setDescription("Fields to use (coma separeted)");
95
			field.setType(DataTypes.STRING);
96

  
97
			field = dynClass.addDynField(DYNFIELDNAME_INITIALFILTER);
98
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
99
			field.setDescription("Initial filter");
100
			field.setType(DataTypes.STRING);
101

  
102
			field = dynClass.addDynField(DYNFIELDNAME_INITIALORDER);
103
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
104
			field.setDescription("Initial order");
105
			field.setType(DataTypes.STRING);
106

  
107
			field = dynClass.addDynField(DYNFIELDNAME_PKFIELDS);
108
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
109
			field.setDescription("Fields of the Primary Key");
110
			field.setType(DataTypes.STRING);
111

  
112
			field = dynClass.addDynField(DYNFIELDNAME_DEFAULTGEOMETRY);
113
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
114
			field.setDescription("Default geometry field");
115
			field.setType(DataTypes.STRING);
116

  
83 117
		}
84 118
	}
85 119

  
......
132 166
		this.setDynValue(DYNFIELDNAME_PASSWORD, password);
133 167
	}
134 168

  
169
	public void setJDBCDriverClassName(String className) {
170
		this.setDynValue(DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME, className);
171
	}
135 172

  
173
	public String getJDBCDriverClassName() {
174
		return (String) this.getDynValue(DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME);
175
	}
176

  
177
	public String getCatalog() {
178
		return (String) this.getDynValue(DYNFIELDNAME_CATALOG);
179
	}
180

  
181
	public void setCatalog(String catalog) {
182
		this.setDynValue(DYNFIELDNAME_CATALOG, catalog);
183
	}
184

  
185
	public String getSchema() {
186
		return (String) this.getDynValue(DYNFIELDNAME_SCHEMA);
187
	}
188

  
189
	public void setSchema(String schema) {
190
		this.setDynValue(DYNFIELDNAME_SCHEMA, schema);
191
	}
192

  
193
	public String getTable() {
194
		return (String) this.getDynValue(DYNFIELDNAME_TABLE);
195
	}
196

  
197
	public void setTable(String table) {
198
		this.setDynValue(DYNFIELDNAME_TABLE, table);
199
	}
200

  
201
	public String getFieldsString() {
202
		return (String) this.getDynValue(DYNFIELDNAME_FIELDS);
203
	}
204

  
205
	public String[] getFields() {
206
		String fields = (String) this.getDynValue(DYNFIELDNAME_FIELDS);
207
		if (fields == null) {
208
			return null;
209
		}
210
		// FIXME check for fields with spaces and special chars
211
		return fields.split(",");
212
	}
213

  
214
	public void setFields(String fields) {
215
		this.setDynValue(DYNFIELDNAME_FIELDS, fields);
216
	}
217

  
218
	public void setFields(String[] fields) {
219
		StringBuilder str = new StringBuilder();
220
		for (int i = 0; i < fields.length - 1; i++) {
221
			str.append(fields[i]);
222
			str.append(",");
223
		}
224
		str.append(fields.length - 1);
225

  
226
		this.setDynValue(DYNFIELDNAME_FIELDS, fields);
227
	}
228

  
229
	public String getSQL() {
230
		return (String) this.getDynValue(DYNFIELDNAME_SQL);
231
	}
232

  
233
	public void setSQL(String sql) {
234
		this.setDynValue(DYNFIELDNAME_SQL, sql);
235
	}
236

  
237
	public String getInitialFilter() {
238
		return (String) this.getDynValue(DYNFIELDNAME_INITIALFILTER);
239
	}
240

  
241
	public void setInitialFilter(String initialFilter) {
242
		this.setDynValue(DYNFIELDNAME_INITIALFILTER, initialFilter);
243
	}
244

  
245
	public String getInitialOrder() {
246
		return (String) this.getDynValue(DYNFIELDNAME_INITIALORDER);
247
	}
248

  
249
	public void setInitialOrder(String order) {
250
		this.setDynValue(DYNFIELDNAME_INITIALORDER, order);
251
	}
252

  
253
	public String getPkFieldsString() {
254
		return (String) this.getDynValue(DYNFIELDNAME_PKFIELDS);
255
	}
256

  
257
	public String[] getPkFields() {
258
		String fields = (String) this.getDynValue(DYNFIELDNAME_PKFIELDS);
259
		if (fields == null) {
260
			return null;
261
		}
262
		// FIXME check for fields with spaces and special chars
263
		return fields.split(",");
264
	}
265

  
266
	public void setPkFields(String fields) {
267
		this.setDynValue(DYNFIELDNAME_PKFIELDS, fields);
268
	}
269

  
270
	public void setPkFields(String[] fields) {
271
		StringBuilder str = new StringBuilder();
272
		for (int i = 0; i < fields.length - 1; i++) {
273
			str.append(fields[i]);
274
			str.append(",");
275
		}
276
		str.append(fields.length - 1);
277

  
278
		this.setDynValue(DYNFIELDNAME_PKFIELDS, fields);
279
	}
280

  
136 281
}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/jdbc/JDBCConnectionParameters.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 IVER T.I   {{Task}}
26
*/
27

  
28
/**
29
 *
30
 */
31
package org.gvsig.fmap.dal.store.jdbc;
32

  
33
import org.gvsig.fmap.dal.serverexplorer.db.DBConnectionParameter;
34

  
35
/**
36
 * @author jmvivo
37
 *
38
 */
39
public interface JDBCConnectionParameters extends DBConnectionParameter {
40
	public static final String DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME = "jdbcdriverclass";
41
	public static final String DYNFIELDNAME_CATALOG = "catalog";
42
	public static final String DYNFIELDNAME_SCHEMA = "schema";
43

  
44
	public String getJDBCDriverClassName();
45

  
46
	public String getCatalog();
47

  
48
	public String getSchema();
49

  
50
}
0 51

  
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/jdbc/JDBCLibrary.java
37 37
	public void postInitialize() throws ReferenceNotRegisteredException {
38 38
		super.postInitialize();
39 39

  
40
		JDBCResourceParameters.registerDynClass();
40 41

  
41 42
		JDBCStoreParameters.registerDynClass();
42 43
	}
branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/jdbc/JDBCResourceParameters.java
30 30
import org.gvsig.fmap.dal.DataTypes;
31 31
import org.gvsig.fmap.dal.resource.db.DBResourceParameters;
32 32
import org.gvsig.tools.ToolsLocator;
33
import org.gvsig.tools.dynobject.DelegatedDynObject;
34 33
import org.gvsig.tools.dynobject.DynClass;
35 34
import org.gvsig.tools.dynobject.DynField;
36 35
import org.gvsig.tools.dynobject.DynObjectManager;
37 36

  
38
public abstract class JDBCResourceParameters extends DBResourceParameters {
37
public abstract class JDBCResourceParameters extends DBResourceParameters
38
		implements JDBCConnectionParameters {
39 39

  
40 40
    public static final String DYNCLASS_NAME = "JDBCResourceParameters";
41 41

  
42
    public static final String DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME = "jdbcdriverclass";
43 42

  
44

  
45
    public JDBCResourceParameters() {
46
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
47
				.getDynObjectManager().createDynObject(registerDynClass());
48
	}
49

  
50

  
51

  
52 43
    public JDBCResourceParameters(String host, Integer port, String dbName,
53 44
			String user, String password, String jdbcDriverClassName) {
54
		this();
45
		super();
46

  
55 47
		this.setHost(host);
56 48
		this.setPort(port);
57 49
		this.setDBName(dbName);
......
60 52
		this.setJDBCDriverClassName(jdbcDriverClassName);
61 53
	}
62 54

  
63
	private DynClass registerDynClass() {
55

  
56
	public JDBCResourceParameters() {
57
		super();
58
	}
59

  
60

  
61
	static void registerDynClass() {
64 62
		DynObjectManager dynman = ToolsLocator.getDynObjectManager();
65 63
		DynClass dynClass = dynman.get(DYNCLASS_NAME);
66 64
		DynField field;
......
75 73
			field.setMandatory(true);
76 74
			field.setType(DataTypes.STRING);
77 75

  
76

  
77
			field = dynClass.addDynField(DYNFIELDNAME_CATALOG);
78
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
79
			field.setDescription("DB Catalog");
80
			field.setType(DataTypes.STRING);
81

  
82
			field = dynClass.addDynField(DYNFIELDNAME_SCHEMA);
83
			field.setTheTypeOfAvailableValues(DynField.SINGLE);
84
			field.setDescription("DB Schema");
85
			field.setType(DataTypes.STRING);
86

  
78 87
		}
79
		return dynClass;
80 88
	}
81 89

  
82 90

  
......
91 99
		return (String) this.getDynValue(DYNFIELDNAME_JDBC_DRIVER_CLASS_NAME);
92 100
	}
93 101

  
102
	public String getCatalog() {
103
		return (String) this.getDynValue(DYNFIELDNAME_CATALOG);
104
	}
105

  
106
	public void setCatalog(String catalog) {
107
		this.setDynValue(DYNFIELDNAME_CATALOG, catalog);
108
	}
109

  
110
	public String getSchema() {
111
		return (String) this.getDynValue(DYNFIELDNAME_SCHEMA);
112
	}
113

  
114
	public void setSchema(String schema) {
115
		this.setDynValue(DYNFIELDNAME_SCHEMA, schema);
116
	}
117

  
94 118
}

Also available in: Unified diff