Revision 2319 org.gvsig.raster.wcs/branches/org.gvsig.raster.wcs_dataaccess_refactoring/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSDataParametersImpl.java

View differences:

WCSDataParametersImpl.java
27 27
import java.util.Hashtable;
28 28
import java.util.Map;
29 29

  
30
import org.cresques.cts.IProjection;
31 30
import org.gvsig.compat.net.ICancellable;
32 31
import org.gvsig.fmap.crs.CRSFactory;
32
import org.gvsig.fmap.dal.coverage.store.RasterDataServerExplorer;
33
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
33 34
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
34 35
import org.gvsig.tools.ToolsLocator;
35
import org.gvsig.tools.dataTypes.DataTypes;
36 36
import org.gvsig.tools.dynobject.DelegatedDynObject;
37 37
import org.gvsig.tools.dynobject.DynClass;
38
import org.gvsig.tools.dynobject.DynField;
39
import org.gvsig.tools.dynobject.DynObjectManager;
40 38
import org.gvsig.tools.dynobject.DynStruct;
41 39
import org.gvsig.tools.persistence.PersistenceManager;
42
import org.gvsig.tools.persistence.PersistentState;
43
import org.gvsig.tools.persistence.exception.PersistenceException;
44 40

  
45 41
/**
46 42
 * Parameters for the WCS provider
47 43
 * @author Nacho Brodin (nachobrodin@gmail.com)
48 44
 */
49 45
public class WCSDataParametersImpl extends AbstractRasterDataParameters implements WCSDataParameters {
50
	public static final String       DYNCLASS_NAME         = "WCSDataParameters";
51 46
	private static final String      FIELD_TIME            = "time";
52 47
	private static final String      FIELD_MAXRES          = "maxres";
53 48
	private static final String      FIELD_PARAM           = "parameter";
54
	private static final String      FIELD_SRS             = "srs";
55 49
	private static final String      FIELD_FORMAT          = "format";
56 50
	private static final String      FIELD_NAME            = "name";
57 51
	private static final String      FIELD_SRSSTR          = "srsstr";
58 52
	private static final String      FIELD_EXTENT          = "extent";
59 53
	private static final String      FIELD_WIDTH           = "width";
60 54
	private static final String      FIELD_HEIGHT          = "height";
61
	private static final String      FIELD_CANCEL          = "cancellable";
62 55
	private static final String      FIELD_OVERRIDE        = "override";
63 56
	private static final String      FIELD_ONLINERESOURC   = "onlineresources";
64 57
	private static final String      FIELD_DEPTH           = "depth";
......
66 59
	
67 60
	private DelegatedDynObject       delegatedDynObject    = null;
68 61
	protected static DynClass        DYNCLASS              = null;
62
	private ICancellable             cancel                = null;
69 63
	
70 64
	public WCSDataParametersImpl() {
71 65
		super();
......
74 68
	
75 69
	protected void initialize() {
76 70
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
77
				.getDynObjectManager().createDynObject(
78
						DYNCLASS);
71
				.getDynObjectManager().createDynObject(registerDynClass());
79 72
	}
80 73
	
81
	public static void registerPersistence() {
74
	public static DynStruct registerDynClass() {
82 75
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
83
		DynStruct definition = manager.getDefinition("WCSDataParametersImpl_Persistent");
76
		DynStruct definition = manager.getDefinition("WCSDataParameters_Persistent");
84 77
		if( definition == null ) {
85 78
			definition = manager.addDefinition(
86 79
					WCSDataParametersImpl.class,
87
					"WCSDataParametersImpl_Persistent",
80
					"WCSDataParameters_Persistent",
88 81
					"WCS DataParameters Persistency",
89 82
					null, 
90 83
					null
91 84
			);
92
			AbstractRasterDataParameters.registerPersistence(definition);
93
			
94
			definition.addDynFieldObject(FIELD_EXTENT).setClassOfValue(Rectangle2D.class).setMandatory(false);
95
			definition.addDynFieldInt(FIELD_WIDTH).setMandatory(false);
96
			definition.addDynFieldInt(FIELD_HEIGHT).setMandatory(false);
97
			definition.addDynFieldObject(FIELD_MAXRES).setClassOfValue(Point2D.class).setMandatory(false);
98
			definition.addDynFieldString(FIELD_FORMAT).setMandatory(false);
99
			definition.addDynFieldString(FIELD_PARAM).setMandatory(false);
100
			definition.addDynFieldString(FIELD_NAME).setMandatory(false);			
101
			definition.addDynFieldString(FIELD_SRSSTR).setMandatory(false);
102
			definition.addDynFieldBoolean(FIELD_OVERRIDE).setMandatory(false);
103
			definition.addDynFieldMap(FIELD_ONLINERESOURC).setClassOfItems(String.class).setMandatory(false);
104
			definition.addDynFieldString(FIELD_DEPTH).setMandatory(false);
105
			definition.addDynFieldString(FIELD_TIME).setMandatory(false);
106 85
		}
107
	}
108
	
109
	public void saveToState(PersistentState state) throws PersistenceException {
110
		super.saveToState(state);
111
		state.set(FIELD_FORMAT, getFormat());
112
		state.set(FIELD_MAXRES, getMaxResolution());
113
		state.set(FIELD_PARAM, getParameter());
114
		state.set(FIELD_DEPTH, getDepth());
115
		state.set(FIELD_TIME, getTime());
116
		state.set(FIELD_NAME, getCoverageName());	
117
		state.set(FIELD_SRSSTR, getSRSCode());
118
		state.set(FIELD_OVERRIDE, isOverridingHost());
119
		state.set(FIELD_ONLINERESOURC, getOnlineResource());
120
		state.set(FIELD_EXTENT, getExtent());
121
	}
122
	
123
	@SuppressWarnings("unchecked")
124
	public void loadFromState(PersistentState state)
125
	throws PersistenceException {
126
		super.loadFromState(state);
127 86

  
128
		setFormat(state.getString(FIELD_FORMAT));
129
		setMaxResolution((Point2D)state.get(FIELD_MAXRES));
130
		setParameter(state.getString(FIELD_PARAM));
131
		setDepth(state.getString(FIELD_DEPTH));
132
		setTime(state.getString(FIELD_TIME));
133
		setCoverageName(state.getString(FIELD_NAME));
134
		setSRS(state.getString(FIELD_SRSSTR));
135
		setOverrideHost(state.getBoolean(FIELD_OVERRIDE));
136
		if(state.getMap(FIELD_ONLINERESOURC) != null)
137
			setOnlineResources(new Hashtable(state.getMap(FIELD_ONLINERESOURC)));
138
		setExtent((Rectangle2D)state.get(FIELD_EXTENT));
139
	}
140

  
141
	@SuppressWarnings("deprecation")
142
	public static void registerDynClass() {
143
		DynObjectManager dynman = ToolsLocator.getDynObjectManager();
144
		DynClass dynClass;
145
		DynField field;
87
		AbstractRasterDataParameters.registerDynClass(definition);
146 88
		
147
		if(dynman == null)
148
			return;
89
		definition.addDynFieldObject(FIELD_MAXRES)
90
		.setClassOfValue(Point2D.class)
91
		.setMandatory(false);
149 92
		
150
		if (DYNCLASS == null) {
151
			dynClass = AbstractRasterDataParameters.registerDynClass(WCSDataParametersImpl.DYNCLASS_NAME);
93
		definition.addDynFieldString(FIELD_PARAM)
94
		.setMandatory(false);
95
		
96
		definition.addDynFieldString(FIELD_DEPTH)
97
		.setMandatory(false);
98
		
99
		definition.addDynFieldString(FIELD_TIME)
100
		.setMandatory(false);
101
		
102
		definition.addDynFieldObject(FIELD_EXTENT)
103
		.setDescription("Bounding box")
104
		.setClassOfValue(Rectangle2D.class)
105
		.setMandatory(false);
106
		
107
		definition.addDynFieldInt(FIELD_WIDTH)
108
		.setDescription("Width")
109
		.setMandatory(false);
110
		
111
		definition.addDynFieldInt(FIELD_HEIGHT)
112
		.setDescription("Height")
113
		.setMandatory(false);
114
		
115
		definition.addDynFieldString(FIELD_FORMAT)
116
		.setDescription("Format")
117
		.setMandatory(false);
118
		
119
		definition.addDynFieldString(FIELD_NAME)
120
		.setDescription("Name")
121
		.setMandatory(false);			
122
		
123
		definition.addDynFieldString(FIELD_SRSSTR)
124
		.setDescription("String that represents the SRS")
125
		.setMandatory(false);
126
		
127
		definition.addDynFieldBoolean(FIELD_OVERRIDE)
128
		.setDescription("Override a host capabilities")
129
		.setMandatory(false);
130
		
131
		definition.addDynFieldMap(FIELD_ONLINERESOURC)
132
		.setDescription("online resources")
133
		.setClassOfItems(String.class)
134
		.setMandatory(false);
135
		
136
		definition.addDynFieldBoolean(FIELD_DELETECACHE)
137
		.setDescription("Flag to delete cache the next request")
138
		.setMandatory(false);
152 139

  
153
			field = dynClass.addDynField(FIELD_MAXRES);
154
			field.setTheTypeOfAvailableValues(DynField.ANY);
155
			field.setDescription("Maxresolution");
156
			field.setType(DataTypes.OBJECT);
157
			field.setMandatory(false);
158
			
159
			field = dynClass.addDynField(FIELD_PARAM);
160
			field.setTheTypeOfAvailableValues(DynField.ANY);
161
			field.setDescription("Parameters");
162
			field.setType(DataTypes.STRING);
163
			field.setMandatory(false);
164
			
165
			field = dynClass.addDynField(FIELD_SRS);
166
			field.setTheTypeOfAvailableValues(DynField.ANY);
167
			field.setDescription("SRS");
168
			field.setType(org.cresques.DataTypes.CRS);
169
			field.setMandatory(false);
170

  
171
			field = dynClass.addDynField(FIELD_FORMAT);
172
			field.setTheTypeOfAvailableValues(DynField.ANY);
173
			field.setDescription("Format");
174
			field.setType(DataTypes.STRING);
175
			field.setMandatory(true);
176
			
177
			field = dynClass.addDynField(FIELD_NAME);
178
			field.setTheTypeOfAvailableValues(DynField.ANY);
179
			field.setDescription("Name");
180
			field.setType(DataTypes.STRING);
181
			field.setMandatory(true);
182
			
183
			field = dynClass.addDynField(FIELD_SRSSTR);
184
			field.setTheTypeOfAvailableValues(DynField.ANY);
185
			field.setDescription("String that represents the SRS");
186
			field.setType(DataTypes.STRING);
187
			field.setMandatory(true);
188
			
189
			field = dynClass.addDynField(FIELD_CANCEL);
190
			field.setTheTypeOfAvailableValues(DynField.ANY);
191
			field.setDescription("Cancellable");
192
			field.setType(DataTypes.OBJECT);
193
			field.setMandatory(false);
194
			
195
			field = dynClass.addDynField(FIELD_EXTENT);
196
			field.setTheTypeOfAvailableValues(DynField.ANY);
197
			field.setDescription("Extent");
198
			field.setType(DataTypes.OBJECT);
199
			field.setMandatory(false);
200
			
201
			field = dynClass.addDynField(FIELD_WIDTH);
202
			field.setTheTypeOfAvailableValues(DynField.ANY);
203
			field.setDescription("Width");
204
			field.setType(DataTypes.INT);
205
			field.setMandatory(false);
206
			
207
			field = dynClass.addDynField(FIELD_HEIGHT);
208
			field.setTheTypeOfAvailableValues(DynField.ANY);
209
			field.setDescription("Height");
210
			field.setType(DataTypes.INT);
211
			field.setMandatory(false);
212
			
213
			field = dynClass.addDynField(FIELD_OVERRIDE);
214
			field.setTheTypeOfAvailableValues(DynField.ANY);
215
			field.setDescription("Override a host capabilities");
216
			field.setType(DataTypes.BOOLEAN);
217
			field.setMandatory(false);
218
			
219
			field = dynClass.addDynField(FIELD_ONLINERESOURC);
220
			field.setTheTypeOfAvailableValues(DynField.ANY);
221
			field.setDescription("online resources");
222
			field.setType(DataTypes.MAP);
223
			field.setMandatory(false);
224
			
225
			field = dynClass.addDynField(FIELD_DEPTH);
226
			field.setTheTypeOfAvailableValues(DynField.ANY);
227
			field.setDescription("Depth");
228
			field.setType(DataTypes.STRING);
229
			field.setMandatory(false);
230
			
231
			field = dynClass.addDynField(FIELD_TIME);
232
			field.setTheTypeOfAvailableValues(DynField.ANY);
233
			field.setDescription("Time");
234
			field.setType(DataTypes.STRING);
235
			field.setMandatory(false);
236
			
237
			field = dynClass.addDynField(FIELD_DELETECACHE);
238
			field.setTheTypeOfAvailableValues(DynField.ANY);
239
			field.setDescription("Flag to delete cache the next request");
240
			field.setType(DataTypes.BOOLEAN);
241
			field.setMandatory(false);
242
			
243
			DYNCLASS = dynClass;
244
		}
140
		return definition;
245 141
	}
246 142
	
247
	/*
248
	 * (non-Javadoc)
249
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#setMaxResolution(java.awt.geom.Point2D)
250
	 */
251 143
	public void setMaxResolution(Point2D res) {
252 144
		this.setDynValue(FIELD_MAXRES, res);
253 145
	}
......
256 148
		return (Point2D) this.getDynValue(FIELD_MAXRES);
257 149
	}
258 150
	
259
	/*
260
	 * (non-Javadoc)
261
	 * @see org.gvsig.fmap.dal.coverage.store.parameter.WCSDataParameters#setParameter(java.lang.String)
262
	 */
263 151
	public void setParameter(String parameter) {
264 152
		this.setDynValue(FIELD_PARAM, parameter);
265 153
	}
266 154
	
267
	/*
268
	 * (non-Javadoc)
269
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#getParameter()
270
	 */
271 155
	public String getParameter() {
272 156
		return (String) this.getDynValue(FIELD_PARAM);
273 157
	}
274 158
	
275
	/*
276
	 * (non-Javadoc)
277
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#getFormat()
278
	 */
279 159
	public String getFormat() {
280 160
		return (String) this.getDynValue(FIELD_FORMAT);
281 161
	}
282 162

  
283
	/*
284
	 * (non-Javadoc)
285
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#setFormat(java.lang.String)
286
	 */
287 163
	public void setFormat(String format) {
288 164
		this.setDynValue(FIELD_FORMAT, format);
289 165
	}
......
307 183
		setSRS(CRSFactory.getCRS(m_srs));
308 184
	}
309 185
	
310
	public void setSRS(IProjection srs) {
311
		setDynValue(FIELD_SRS, srs);
312
	}
313

  
314
	/**
315
	 * Returns the projection
316
	 * @return
317
	 */
318
	public IProjection getSRS() {
319
		if (this.getSRSID() == null) {
320
			return null;
321
		}
322
		return (IProjection) getDynValue(FIELD_SRS);
323
	}
324
	
325
	public String getSRSID() {
326
		IProjection srs = (IProjection) getDynValue(FIELD_SRS);
327
		if (srs == null) {
328
			return null;
329
		}
330
		return srs.getAbrev();
331
	}
332

  
333 186
	public void setSRSID(String srsid) {
334 187
		if (srsid == null) {
335
			setDynValue(FIELD_SRS, null);
188
			setDynValue(FIELD_SRSSTR, null);
336 189
		} else {
337
			setDynValue(FIELD_SRS, CRSFactory.getCRS(srsid));
190
			setDynValue(FIELD_SRSSTR, CRSFactory.getCRS(srsid));
338 191
		}
339 192
	}
340 193
	
......
347 200
	}
348 201
	
349 202
	public void setCancellable(ICancellable cancel) {
350
		this.setDynValue(FIELD_CANCEL, cancel);
203
		this.cancel = cancel;
351 204
	}
352 205
	
353 206
	public ICancellable getCancellable() {
354
		return (ICancellable) this.getDynValue(FIELD_CANCEL);
207
		return this.cancel;
355 208
	}
356 209
	
357
	/*
358
	 * (non-Javadoc)
359
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#setExtent(java.awt.geom.Rectangle2D)
360
	 */
361 210
	public void setExtent(Rectangle2D bBox) {
362 211
		this.setDynValue(FIELD_EXTENT, bBox);
363 212
	}
364 213
	
365
	/*
366
	 * (non-Javadoc)
367
	 * @see org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters#setWidth(int)
368
	 */
369 214
	public void setWidth(int w) {
370 215
		this.setDynValue(FIELD_WIDTH, new Integer(w));
371 216
	}
372 217
	
373
	/*
374
	 * (non-Javadoc)
375
	 * @see org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters#setHeight(int)
376
	 */
377 218
	public void setHeight(int h) {
378 219
		this.setDynValue(FIELD_HEIGHT, new Integer(h));
379 220
	}
380 221
	
381
	/*
382
	 * (non-Javadoc)
383
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#getExtent()
384
	 */
385 222
	public Rectangle2D getExtent() {
386 223
		return (Rectangle2D)getDynValue(FIELD_EXTENT);
387 224
	}
......
408 245
		return 0;
409 246
	}
410 247
	
411
	/*public void setConnector(Object connector) {
412
		this.setDynValue(FIELD_CONNECTOR, connector);
413
	}
414
	
415
	public Object getConnector() {
416
		return (Object)getDynValue(FIELD_CONNECTOR);
417
	}*/
418
	
419 248
	//**********************************************
420 249
	
421
	/*
422
	 * (non-Javadoc)
423
	 * @see org.gvsig.fmap.dal.DataStoreParameters#getDataStoreName()
424
	 */
425 250
	public String getDataStoreName() {
426 251
		return WCSProvider.NAME;
427 252
	}
428 253
	
429
	/*
430
	 * (non-Javadoc)
431
	 * @see org.gvsig.fmap.dal.DataStoreParameters#getDescription()
432
	 */
433 254
	public String getDescription() {
434 255
		return WCSProvider.DESCRIPTION;
435 256
	}
436 257

  
437 258
	public String getExplorerName() {
438
		return WCSServerExplorer.NAME;
259
		return WCSProvider.NAME;
439 260
	}
440 261
	
441 262
	public boolean isValid() {
......
446 267
		return delegatedDynObject;
447 268
	}
448 269
	
449
	/*
450
	 * (non-Javadoc)
451
	 * @see java.lang.Object#clone()
452
	 */
453 270
	@SuppressWarnings("unchecked")
454 271
	public WCSDataParametersImpl clone() {
455 272
		WCSDataParametersImpl p = new WCSDataParametersImpl();
......
467 284
		p.setTime(getTime());
468 285
		return p;
469 286
	}
287
	
288
	@SuppressWarnings("unchecked")
289
	public void assignFields(RasterDataParameters par, RasterDataServerExplorer explorer) {
290
		super.assignFields(par, explorer);
291
		WCSDataParametersImpl p = null;
292
		if(par instanceof WCSDataParametersImpl)
293
			p = (WCSDataParametersImpl)par;
294
		else
295
			return;
296
		setFormat(p.getFormat());
297
		setHeight(p.getHeight());
298
		setWidth(p.getWidth());
299
		setExtent(p.getExtent());
300
		setCoverageName(p.getCoverageName());
301
		setOverrideHost(p.isOverridingHost());
302
		setSRS(p.getSRS());
303
		setSRS(p.getSRSCode());
304
		setURI(p.getURI());
305
		setCancellable(p.getCancellable());
306
		setOnlineResources((Hashtable<String, String>)p.getDynValue(FIELD_ONLINERESOURC));
307
		setTime(p.getTime());
308
	}
470 309

  
471
	/*
472
	 * (non-Javadoc)
473
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#getTime()
474
	 */
475 310
	public String getTime() {
476 311
		return (String) this.getDynValue(FIELD_TIME);
477 312
	}
478 313

  
479
	/*
480
	 * (non-Javadoc)
481
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#setTime(java.lang.String)
482
	 */
483 314
	public void setTime(String time) {
484 315
		this.setDynValue(FIELD_TIME, time);
485 316
	}
486 317
	
487
	/*
488
	 * (non-Javadoc)
489
	 * @see org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters#isOverridingHost()
490
	 */
491 318
	public boolean isOverridingHost() {
492 319
		Boolean b = (Boolean)getDynValue(FIELD_OVERRIDE);
493 320
		if(b != null)
......
495 322
		return false;
496 323
	}
497 324
	
498
	/*
499
	 * (non-Javadoc)
500
	 * @see org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters#setOverrideHost(boolean)
501
	 */
502 325
	public void setOverrideHost(boolean over) {
503 326
		this.setDynValue(FIELD_OVERRIDE, new Boolean(over));;
504 327
	}
505 328
	
506
	/*
507
	 * (non-Javadoc)
508
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#setOnlineResources(java.util.Hashtable)
509
	 */
510 329
	public void setOnlineResources(Hashtable<String, String> onlineResources) {
511 330
		this.setDynValue(FIELD_ONLINERESOURC, onlineResources);
512 331
	}
513 332
	
514
	/*
515
	 * (non-Javadoc)
516
	 * @see org.gvsig.raster.wcs.io.WCSDataParameters#getOnlineResource()
517
	 */
518 333
	@SuppressWarnings("unchecked")
519 334
	public Map<String,String> getOnlineResource() {
520 335
		return (Map<String,String>) this.getDynValue(FIELD_ONLINERESOURC);

Also available in: Unified diff