Revision 27753 branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/jdbc/JDBCStoreParameters.java

View differences:

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
}

Also available in: Unified diff