Revision 9524

View differences:

org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSServerExplorerParameters.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
package org.gvsig.raster.wcs.io;
29

  
30
import org.gvsig.fmap.dal.DataServerExplorerParameters;
31
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
32
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
33
import org.gvsig.tools.ToolsLocator;
34
import org.gvsig.tools.dynobject.DelegatedDynObject;
35
import org.gvsig.tools.dynobject.DynClass;
36
import org.gvsig.tools.dynobject.DynStruct;
37
import org.gvsig.tools.persistence.PersistenceManager;
38

  
39
/**
40
 * Parameters for the WCS provider
41
 * @author Nacho Brodin (nachobrodin@gmail.com)
42
 */
43
public class WCSServerExplorerParameters extends AbstractDataParameters implements DataServerExplorerParameters {
44
	protected static final String  FIELD_HOST          = "host";
45
	protected static DynClass      DYNCLASS            = null;
46
	private DelegatedDynObject     delegatedDynObject  = null;
47
	private static final String    AXIS_ORDER          = "axisorder";
48
	
49
	public WCSServerExplorerParameters() {
50
		super();
51
		initialize();
52
	}
53

  
54
	protected void initialize() {
55
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
56
				.getDynObjectManager().createDynObject(
57
						registerDynClass());
58
	}
59
	
60
	public static DynStruct registerDynClass() {
61
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
62
		DynStruct definition = manager.getDefinition("WCSServerExplorerParameters_Persistent");
63
		if( definition == null ) {
64
			definition = manager.addDefinition(
65
					WCSServerExplorerParameters.class,
66
					"WCSServerExplorerParameters_Persistent",
67
					"WCS Explorer DataParameters Persistency",
68
					null, 
69
					null
70
			);
71
		}
72

  
73
		AbstractRasterDataParameters.registerDynClass(definition);
74

  
75
		definition.addDynFieldBoolean(AXIS_ORDER)
76
		.setDescription("Longitude first in axis order")
77
		.setMandatory(false);
78

  
79
		definition.addDynFieldString(FIELD_HOST)
80
		.setDescription("Uniform Resource Identifier (File name or URL)")
81
		.setMandatory(false);		
82
		return definition;
83
	}
84
	
85
	protected DelegatedDynObject getDelegatedDynObject() {
86
		return delegatedDynObject;
87
	}
88
	
89
	/**
90
	 * Gets the assigned host
91
	 * @return
92
	 */
93
	public String getHost() {
94
		return (String) this.getDynValue(FIELD_HOST);
95
	}
96

  
97
	/**
98
	 * Assign the host to this explorer
99
	 * @param host
100
	 */
101
	public void setHost(String host) {
102
		this.setDynValue(FIELD_HOST, host);
103
	}
104

  
105
	public String getDataStoreName() {
106
		return WCSProvider.NAME;
107
	}
108
	
109
	public String getDescription() {
110
		return WCSProvider.DESCRIPTION;
111
	}
112

  
113
	public String getExplorerName() {
114
		return WCSProvider.NAME;
115
	}
116
	
117
	/**
118
	 * Returns true if the longitude is first in axis order
119
	 * @return
120
	 */
121
	public boolean isLongitudeFirst() {
122
		Object obj = getDynValue(AXIS_ORDER);
123
		if(obj instanceof Boolean) {
124
			Boolean b = (Boolean)getDynValue(AXIS_ORDER);
125
			if(b != null)
126
				return ((Boolean)b).booleanValue();
127
		}
128
		if(obj instanceof String) {
129
			String b = (String)getDynValue(AXIS_ORDER);
130
			if(b != null)
131
				return new Boolean(((String)b));
132
		}
133
		return false;
134
	}
135
	
136
	/**
137
	 * Sets the longitude first in axis order
138
	 * @param longFirst
139
	 */
140
	public void setLongitudeFirst(boolean longFirst) {
141
		this.setDynValue(AXIS_ORDER, new Boolean(longFirst));
142
	}
143
}
0 144

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSDataParameters.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
package org.gvsig.raster.wcs.io;
24

  
25
import java.awt.geom.Point2D;
26
import java.awt.geom.Rectangle2D;
27
import java.net.URI;
28
import java.util.Hashtable;
29
import java.util.Map;
30

  
31
import org.gvsig.compat.net.ICancellable;
32
import org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters;
33

  
34
/**
35
 * Parameters for the WCS provider
36
 * @author Nacho Brodin (nachobrodin@gmail.com)
37
 */
38
public interface WCSDataParameters extends RemoteStoreParameters {
39
	/**
40
	 * Gets the time information for the request
41
	 * @return
42
	 */
43
	public Object getTime();
44

  
45
	/**
46
	 * Sets the time information for the request
47
	 * @param time
48
	 */
49
	public void setTime(String time);
50

  
51
	/**
52
	 * Gets the format
53
	 * @return Formato.
54
	 */
55
	public Object getFormat();
56

  
57
	/**
58
	 * Sets the format
59
	 * @param format Formato.
60
	 */
61
	public void setFormat(String format);
62

  
63
	public Object getSRSCode();
64

  
65
	public URI getURI();
66

  
67
	public String getCoverageName();
68

  
69
	public Point2D getMaxResolution();
70

  
71
	public String getParameter();
72

  
73
	/**
74
	 * Gets the bounding box
75
	 * @return
76
	 */
77
	public Rectangle2D getExtent();
78

  
79
	public int getWidth();
80

  
81
	public int getHeight();
82

  
83
	public boolean isOverridingHost();
84

  
85
	/**
86
	 * Gets the online resource map
87
	 * @param onlineResources
88
	 */
89
	public Map<String,String> getOnlineResource();
90

  
91
	public String getDepth();
92

  
93
	public void setCancellable(ICancellable cancel);
94

  
95
	public void setOverrideHost(boolean over);
96

  
97
	/**
98
	 * Assigns the extent.
99
	 * When a provider is initialized this will need to know what is the extent before the request.
100
	 *
101
	 * @param bBox
102
	 */
103
	public void setExtent(Rectangle2D bBox);
104

  
105
	public void setURI(URI uri);
106

  
107
	public void setSRS(String srs);
108

  
109
	public void setCoverageName(String selectedCoverageName);
110

  
111
	public void setParameter(String parameterString);
112

  
113
	public void setMaxResolution(Point2D maxRes);
114

  
115
	/**
116
	 * Sets the set of URLs that should be accessed for each operation performed
117
	 * to the server.
118
	 *
119
	 * @param onlineResources
120
	 */
121
	public void setOnlineResources(Hashtable<String, String> onlineResources);
122

  
123
	public void setDepth(String depth);
124

  
125
}
0 126

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSDataParametersImpl.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
package org.gvsig.raster.wcs.io;
24

  
25
import java.awt.geom.Point2D;
26
import java.awt.geom.Rectangle2D;
27
import java.util.Hashtable;
28
import java.util.Map;
29

  
30
import org.gvsig.compat.net.ICancellable;
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;
34
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
35
import org.gvsig.tools.ToolsLocator;
36
import org.gvsig.tools.dynobject.DelegatedDynObject;
37
import org.gvsig.tools.dynobject.DynClass;
38
import org.gvsig.tools.dynobject.DynStruct;
39
import org.gvsig.tools.persistence.PersistenceManager;
40

  
41
/**
42
 * Parameters for the WCS provider
43
 * @author Nacho Brodin (nachobrodin@gmail.com)
44
 */
45
public class WCSDataParametersImpl extends AbstractRasterDataParameters implements WCSDataParameters {
46
	private static final String      FIELD_TIME            = "time";
47
	private static final String      FIELD_MAXRES          = "maxres";
48
	private static final String      FIELD_PARAM           = "parameter";
49
	private static final String      FIELD_FORMAT          = "format";
50
	private static final String      FIELD_NAME            = "name";
51
	private static final String      FIELD_SRSSTR          = "srsstr";
52
	private static final String      FIELD_EXTENT          = "extent";
53
	private static final String      FIELD_WIDTH           = "width";
54
	private static final String      FIELD_HEIGHT          = "height";
55
	private static final String      FIELD_OVERRIDE        = "override";
56
	private static final String      FIELD_ONLINERESOURC   = "onlineresources";
57
	private static final String      FIELD_DEPTH           = "depth";
58
	private static final String      FIELD_DELETECACHE     = "deletecache";
59
	
60
	private DelegatedDynObject       delegatedDynObject    = null;
61
	protected static DynClass        DYNCLASS              = null;
62
	private ICancellable             cancel                = null;
63
	
64
	public WCSDataParametersImpl() {
65
		super();
66
		initialize();
67
	}
68
	
69
	protected void initialize() {
70
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
71
				.getDynObjectManager().createDynObject(registerDynClass());
72
	}
73
	
74
	public static DynStruct registerDynClass() {
75
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
76
		DynStruct definition = manager.getDefinition("WCSDataParameters_Persistent");
77
		if( definition == null ) {
78
			definition = manager.addDefinition(
79
					WCSDataParametersImpl.class,
80
					"WCSDataParameters_Persistent",
81
					"WCS DataParameters Persistency",
82
					null, 
83
					null
84
			);
85
		}
86

  
87
		AbstractRasterDataParameters.registerDynClass(definition);
88
		
89
		definition.addDynFieldObject(FIELD_MAXRES)
90
		.setClassOfValue(Point2D.class)
91
		.setMandatory(false);
92
		
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);
139

  
140
		return definition;
141
	}
142
	
143
	public void setMaxResolution(Point2D res) {
144
		this.setDynValue(FIELD_MAXRES, res);
145
	}
146
	
147
	public Point2D getMaxResolution() {
148
		return (Point2D) this.getDynValue(FIELD_MAXRES);
149
	}
150
	
151
	public void setParameter(String parameter) {
152
		this.setDynValue(FIELD_PARAM, parameter);
153
	}
154
	
155
	public String getParameter() {
156
		return (String) this.getDynValue(FIELD_PARAM);
157
	}
158
	
159
	public String getFormat() {
160
		return (String) this.getDynValue(FIELD_FORMAT);
161
	}
162

  
163
	public void setFormat(String format) {
164
		this.setDynValue(FIELD_FORMAT, format);
165
	}
166
	
167
	/**
168
	 * Devuelve el SRS.
169
	 * @return SRS.
170
	 */
171
	public String getSRSCode() {
172
		return (String) this.getDynValue(FIELD_SRSSTR);
173
	}
174
	
175
	/**
176
	 * Inserta el SRS.
177
	 * @param m_srs SRS.
178
	 */
179
	public void setSRS(String m_srs) {
180
		this.setDynValue(FIELD_SRSSTR, m_srs);
181
		if(m_srs.equals("CRS:84"))
182
			m_srs = "EPSG:4326";
183
		setSRS(CRSFactory.getCRS(m_srs));
184
	}
185
	
186
	public void setSRSID(String srsid) {
187
		if (srsid == null) {
188
			setDynValue(FIELD_SRSSTR, null);
189
		} else {
190
			setDynValue(FIELD_SRSSTR, CRSFactory.getCRS(srsid));
191
		}
192
	}
193
	
194
	public String getCoverageName() {
195
		return (String) this.getDynValue(FIELD_NAME);
196
	}
197

  
198
	public void setCoverageName(String name) {
199
		this.setDynValue(FIELD_NAME, name);
200
	}
201
	
202
	public void setCancellable(ICancellable cancel) {
203
		this.cancel = cancel;
204
	}
205
	
206
	public ICancellable getCancellable() {
207
		return this.cancel;
208
	}
209
	
210
	public void setExtent(Rectangle2D bBox) {
211
		this.setDynValue(FIELD_EXTENT, bBox);
212
	}
213
	
214
	public void setWidth(int w) {
215
		this.setDynValue(FIELD_WIDTH, new Integer(w));
216
	}
217
	
218
	public void setHeight(int h) {
219
		this.setDynValue(FIELD_HEIGHT, new Integer(h));
220
	}
221
	
222
	public Rectangle2D getExtent() {
223
		return (Rectangle2D)getDynValue(FIELD_EXTENT);
224
	}
225
	
226
	/**
227
	 * Gets the width
228
	 * @return
229
	 */
230
	public int getWidth() {
231
		Integer b = (Integer)getDynValue(FIELD_WIDTH);
232
		if(b != null)
233
			return ((Integer)b).intValue();
234
		return 0;
235
	}
236
	
237
	/**
238
	 * Gets the height
239
	 * @return
240
	 */
241
	public int getHeight() {
242
		Integer b = (Integer)getDynValue(FIELD_HEIGHT);
243
		if(b != null)
244
			return ((Integer)b).intValue();
245
		return 0;
246
	}
247
	
248
	//**********************************************
249
	
250
	public String getDataStoreName() {
251
		return WCSProvider.NAME;
252
	}
253
	
254
	public String getDescription() {
255
		return WCSProvider.DESCRIPTION;
256
	}
257

  
258
	public String getExplorerName() {
259
		return WCSProvider.NAME;
260
	}
261
	
262
	public boolean isValid() {
263
		return (this.getURI() != null);
264
	}
265
	
266
	protected DelegatedDynObject getDelegatedDynObject() {
267
		return delegatedDynObject;
268
	}
269
	
270
	@SuppressWarnings("unchecked")
271
	public WCSDataParametersImpl clone() {
272
		WCSDataParametersImpl p = new WCSDataParametersImpl();
273
		p.setFormat(getFormat());
274
		p.setHeight(getHeight());
275
		p.setWidth(getWidth());
276
		p.setExtent(getExtent());
277
		p.setCoverageName(getCoverageName());
278
		p.setOverrideHost(isOverridingHost());
279
		p.setSRS(getSRS());
280
		p.setSRS(getSRSCode());
281
		p.setURI(getURI());
282
		p.setCancellable(getCancellable());
283
		p.setOnlineResources((Hashtable<String, String>)this.getDynValue(FIELD_ONLINERESOURC));
284
		p.setTime(getTime());
285
		return p;
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
	}
309

  
310
	public String getTime() {
311
		return (String) this.getDynValue(FIELD_TIME);
312
	}
313

  
314
	public void setTime(String time) {
315
		this.setDynValue(FIELD_TIME, time);
316
	}
317
	
318
	public boolean isOverridingHost() {
319
		Boolean b = (Boolean)getDynValue(FIELD_OVERRIDE);
320
		if(b != null)
321
			return ((Boolean)b).booleanValue();
322
		return false;
323
	}
324
	
325
	public void setOverrideHost(boolean over) {
326
		this.setDynValue(FIELD_OVERRIDE, new Boolean(over));;
327
	}
328
	
329
	public void setOnlineResources(Hashtable<String, String> onlineResources) {
330
		this.setDynValue(FIELD_ONLINERESOURC, onlineResources);
331
	}
332
	
333
	@SuppressWarnings("unchecked")
334
	public Map<String,String> getOnlineResource() {
335
		return (Map<String,String>) this.getDynValue(FIELD_ONLINERESOURC);
336
	}
337

  
338
	/**
339
	 * Gets the URL that should be accessed for an operation performed
340
	 * to the server.
341
	 *
342
	 * @param onlineResources
343
	 */
344
	public String getOnlineResource(String operation) {
345
		return (String) getOnlineResource().get(operation);
346
	}
347
	
348
	
349
	public String getDepth() {
350
		return (String) this.getDynValue(FIELD_DEPTH);
351
	}
352

  
353
	
354
	public void setDepth(String depth) {
355
		this.setDynValue(FIELD_DEPTH, depth);
356
	}
357

  
358
	public boolean isSizeFixed() {
359
		return true;
360
	}
361
	
362
	public void deleteCache(boolean deleteCache) {
363
		this.setDynValue(FIELD_DELETECACHE, new Boolean(deleteCache));
364
	}
365
	
366
	public boolean isDeletingCache() {
367
		return ((Boolean)getDynValue(FIELD_DELETECACHE)).booleanValue();
368
	}
369

  
370
}
0 371

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/DefaultWCSIOLibrary.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
package org.gvsig.raster.wcs.io;
23

  
24
import org.gvsig.i18n.Messages;
25
import org.gvsig.tools.library.AbstractLibrary;
26
import org.gvsig.tools.library.LibraryException;
27
/**
28
 *
29
 * @author Nacho Brodin (nachobrodin@gmail.com)
30
 */
31
public class DefaultWCSIOLibrary extends AbstractLibrary {
32

  
33
	public DefaultWCSIOLibrary() {
34
		/*super(DefaultWCSIOLibrary.class,Library.TYPE.IMPL);
35
		require(ToolsLibrary.class);
36
		require(DALLibrary.class);
37
		require(DALFileLibrary.class);*/
38
	}
39

  
40
	@Override
41
	protected void doInitialize() throws LibraryException {
42
		//RasterLibrary.wakeUp();
43

  
44
		Messages.addResourceFamily("org.gvsig.raster.wcs.io.i18n.text",
45
				DefaultWCSIOLibrary.class.getClassLoader(),
46
				DefaultWCSIOLibrary.class.getClass().getName());
47
	}
48

  
49
	@Override
50
	protected void doPostInitialize() throws LibraryException {
51
		WCSServerExplorerParameters.registerDynClass();
52
		WCSDataParametersImpl.registerDynClass();
53
		WCSProvider.register();
54
	}
55
}
0 56

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/downloader/TileDownloaderForWCS.java
1
package org.gvsig.raster.wcs.io.downloader;
2

  
3
import java.awt.geom.Rectangle2D;
4

  
5
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
6
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
7
import org.gvsig.raster.cache.tile.Tile;
8
import org.gvsig.raster.cache.tile.exception.TileGettingException;
9
import org.gvsig.raster.impl.provider.tile.BaseTileDownloader;
10
import org.gvsig.raster.wcs.io.WCSConnector;
11
import org.gvsig.raster.wcs.io.WCSDataParametersImpl;
12
import org.gvsig.remoteclient.wcs.WCSStatus;
13

  
14
/** 
15
 * Tile getter 
16
 * @author Nacho Brodin (nachobrodin@gmail.com)
17
 */
18
public class TileDownloaderForWCS extends BaseTileDownloader {
19
	private WCSConnector             connector  = null;
20
	
21
	public TileDownloaderForWCS(RasterDataStore store, 
22
			int tilePxWidth,
23
			int tilePxHeight,
24
			WCSConnector connector) {
25
		super(store, tilePxWidth, tilePxHeight);
26
		this.connector = connector;
27
	}
28
	
29
	public synchronized Tile downloadTile(Tile tile) throws TileGettingException {
30
		try {
31
			Rectangle2D r = new Rectangle2D.Double(tile.getExtent().getMinX(), 
32
					tile.getExtent().getMinY() - tile.getExtent().getHeight(), 
33
					tile.getExtent().getWidth(), 
34
					tile.getExtent().getHeight());
35
			WCSDataParametersImpl p = (WCSDataParametersImpl)store.getParameters();
36
			WCSStatus wcsStatus = new WCSStatus();
37
			wcsStatus.setCoveraName(p.getCoverageName());
38
			wcsStatus.setSrs((String)p.getSRSCode());
39
			wcsStatus.setFormat((String)p.getFormat());
40
			wcsStatus.setDepth(p.getDepth());
41
			wcsStatus.setOnlineResource(p.getOnlineResource() != null ? (String) p.getOnlineResource().get("GetCoverage") : null);
42
			wcsStatus.setExtent(r);
43
			wcsStatus.setHeight(tile.getHeightPx());
44
			wcsStatus.setWidth(tile.getWidthPx());
45
			
46
			connector.getCoverageURL(wcsStatus, tile.getCancelled(), tile.getFile());
47
			//Si borramos el rmf no se puede leer la etiqueta Alpha. En caso de que se modifique jgdal para
48
			//poder guardar esta etiqueta deberiamos borrar el rmf para ahorrar ficheros
49
			//File rmf = new File(tile.getFile().getAbsolutePath() + ".rmf");
50
			//if(rmf.exists())
51
				//rmf.delete();
52
		} catch (RemoteServiceException e) {
53
			throw new TileGettingException(e);
54
		}
55
		readTileFromDisk(tile);
56
		return tile;
57
	}
58
	
59
}
0 60

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/downloader/WCSTileServer.java
1
package org.gvsig.raster.wcs.io.downloader;
2

  
3
import org.cresques.cts.IProjection;
4

  
5
import org.gvsig.fmap.dal.coverage.RasterLibrary;
6
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
7
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
8
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
9
import org.gvsig.raster.cache.tile.TileCacheLibrary;
10
import org.gvsig.raster.cache.tile.TileCacheLocator;
11
import org.gvsig.raster.cache.tile.TileCacheManager;
12
import org.gvsig.raster.cache.tile.provider.CacheStruct;
13
import org.gvsig.raster.cache.tile.provider.Downloader;
14
import org.gvsig.raster.cache.tile.provider.TileServer;
15
import org.gvsig.raster.impl.provider.RasterProvider;
16
import org.gvsig.raster.wcs.io.WCSProvider;
17

  
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

  
21
/**
22
* Data server for the tile cache in a WMSProvider
23
* @author Nacho Brodin (nachobrodin@gmail.com)
24
*/
25
public class WCSTileServer implements TileServer {
26
	private static Logger              logger               = LoggerFactory.getLogger(WCSTileServer.class);
27
	private CacheStruct                struct               = null;
28
	private Downloader                 downloader           = null;
29
	private RasterDataStore            store                = null;
30
	private String                     suffix               = ".tif";
31

  
32
	/**
33
	 * @param store
34
	 */
35
	public WCSTileServer(RasterDataStore store) {
36
		this.store = store;
37
		this.suffix = ((RasterProvider)store.getProvider()).getFileSuffix();
38
	}
39

  
40
	public Downloader getDownloader() {
41
		if(downloader == null ||
42
		   ((TileDownloaderForWCS)downloader).getTileSize()[0] != TileCacheLibrary.ALTERNATIVE_TILESIZE ||
43
		   ((TileDownloaderForWCS)downloader).getTileSize()[1] != TileCacheLibrary.ALTERNATIVE_TILESIZE) {
44

  
45
			try {
46
				downloader = new TileDownloaderForWCS(
47
						store,
48
						TileCacheLibrary.ALTERNATIVE_TILESIZE,
49
						TileCacheLibrary.ALTERNATIVE_TILESIZE,
50
						((WCSProvider)store.getProvider()).getConnector());
51
			} catch (RemoteServiceException e) {
52
				return null;
53
			}
54
		}
55
		return downloader;
56
	}
57

  
58
	public CacheStruct getStruct() {
59
		if(struct == null) {
60
			TileCacheManager  manager = TileCacheLocator.getManager();
61

  
62
			int coordinates = CacheStruct.FLAT;
63
			if(store.getProjection() != null)
64
				coordinates = (store.getProjection() != null && store.getProjection().isProjected()) ? CacheStruct.FLAT : CacheStruct.GEOGRAFIC;
65
			else {
66
				Extent e = store.getExtent();
67
				if(e.getULX() >= -180 && e.getULX() <= 180 && e.getLRX() >= -180 && e.getLRX() <= 180 &&
68
					e.getULY() >= -90 && e.getULY() <= 90 && e.getLRY() >= -90 && e.getLRY() <= 90) {
69
					coordinates = CacheStruct.GEOGRAFIC;
70
				}
71
			}
72

  
73
			String epsg = null;
74
			IProjection proj = store.getProjection();
75
			if(proj != null)
76
				epsg = proj.getAbrev();
77

  
78
			WCSProvider wcsProvider = (WCSProvider)store.getProvider();
79
            struct = manager.createCacheStructure(coordinates,
80
					TileCacheLibrary.DEFAULT_LEVELS,
81
					store.getExtent().toRectangle2D(),
82
					store.getCellSize(),
83
					TileCacheLibrary.ALTERNATIVE_TILESIZE,
84
					TileCacheLibrary.ALTERNATIVE_TILESIZE,
85
					wcsProvider.getURIOfFirstProvider().getPath(),
86
					wcsProvider.getParameters().getCoverageName(),
87
					TileCacheLibrary.DEFAULT_STRUCTURE,
88
					RasterLibrary.pathTileCache,
89
					getFileSuffix(),
90
					epsg,
91
					0);
92
		}
93
		return struct;
94
	}
95

  
96
	public void setStruct(CacheStruct struct) {
97
		if(struct != null) {
98
			this.struct = struct;
99
			if(struct.getTileSizeByLevel(0) != null) {
100
				try {
101
					downloader = new TileDownloaderForWCS(store,
102
							struct.getTileSizeByLevel(0)[0],
103
							struct.getTileSizeByLevel(0)[1],
104
							((WCSProvider)store.getProvider()).getConnector());
105
				} catch (RemoteServiceException ex) {
106
					logger.error("Constructing TileDownloaderForWCS: " + ex.getMessage());
107
				}
108
			}
109
		}
110
	}
111

  
112
	public String getFileSuffix() {
113
		return suffix;
114
	}
115

  
116
	public void setFileSuffix(String extension) {
117
		this.suffix = extension;
118
	}
119
}
0 120

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/package.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.raster.wcs.io package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>WCS provider</p>
11

  
12
</body>
13
</html>
0 14

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSLayerNode.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
package org.gvsig.raster.wcs.io;
23

  
24
import java.awt.geom.Point2D;
25
import java.awt.geom.Rectangle2D;
26
import java.util.ArrayList;
27
import java.util.Hashtable;
28

  
29
/**
30
 * Class defining the node of the layer tree of a common WCS service.
31
 * @author jaume
32
 */
33
@SuppressWarnings("unchecked")
34
public class WCSLayerNode {
35
	private String       name                  = null;
36
	private ArrayList    srs                   = null;
37
	private String       title                 = null;
38
	private String       nativeSRS             = null;
39
	private ArrayList    formats               = null;
40
	private Point2D      maxRes                = null;
41
	private int          width                 = 0;
42
	private int          height                = 0;
43
	private ArrayList    timePositions         = null;
44
	private String       description           = null;
45
	private ArrayList    interpolationMethods  = null;
46
	private ArrayList    pList                 = null;
47
	private Hashtable    extents               = null;
48
	private String       latLonBox             = null;
49
	private String       lAbstract             = null;
50
	private ArrayList    children              = new ArrayList();
51
	private boolean      transparency;
52

  
53
	public void setName(String name) {
54
		this.name = name;
55
	}
56

  
57
	public void addAllSrs(ArrayList srs) {
58
		if (this.srs == null)
59
			this.srs = new ArrayList();
60
		this.srs.addAll(srs);
61
	}
62

  
63
	public void setTitle(String title) {
64
		this.title = title;
65
	}
66

  
67
	public void setNativeSRS(String nativeSRS) {
68
		this.nativeSRS = nativeSRS;
69
	}
70

  
71
	public String getName() {
72
		return name;
73
	}
74

  
75
	public void setFormats(ArrayList formats) {
76
		this.formats = formats;
77
	}
78

  
79
	public ArrayList getFormats() {
80
		return formats;
81
	}
82

  
83
	public ArrayList getSRSs() {
84
		if (!srs.contains(nativeSRS)) {
85
			ArrayList l = new ArrayList(srs);
86
			l.add(nativeSRS);
87
			return l;
88
		}
89
		return srs;
90
	}
91

  
92
	public String getTitle() {
93
		return title;
94
	}
95

  
96
	public Rectangle2D getExtent(String srs) {
97
		if ( extents != null ) {
98
			return (Rectangle2D) extents.get(srs);
99
		}
100
		return null;
101
	}
102
	
103
	public void addExtent(String srs, Rectangle2D extent) {
104
		if ( extents == null ) extents = new Hashtable();
105
		extents.put(srs, extent);
106
	}
107

  
108
	public Point2D getMaxRes() {
109
		return maxRes;
110
	}
111
	
112

  
113
	public void setMaxRes(Point2D maxRes) {
114
		this.maxRes = maxRes;
115
	}
116
	
117
	public String toString(){
118
    	String str;
119
    	if (getName()==null)
120
    		str = getTitle();
121
    	else
122
    		str = "["+getName()+"] "+getTitle();
123
        return str;
124
    }
125

  
126
	public void setTimePositions(ArrayList timePositions) {
127
		this.timePositions = timePositions;
128
	}
129
    
130
	public ArrayList getTimePositions() {
131
		return this.timePositions;
132
	}
133

  
134
	public String getDescription() {
135
		return this.description;
136
	}
137
	
138
	public void setDescription(String descr) {
139
		this.description = descr;
140
	}
141

  
142
	public String getLonLatEnvelope() {
143
		return "yet unimplemented";
144
	}
145

  
146
	public void setInterpolationMethods(ArrayList interpolationMethods) {
147
		this.interpolationMethods = interpolationMethods;
148
	}
149
	
150
	public ArrayList getInterpolationMethods() {
151
		return interpolationMethods;
152
	}
153

  
154
	public ArrayList getParameterList() {
155
		return pList;
156
	}
157
	
158
	public void addParameter(FMapWCSParameter p) {
159
		if (pList == null) pList = new ArrayList();
160
		pList.add(p);
161
	}
162
	
163
	/**
164
     * Gets the layer abstract.
165
     * @return Returns the abstract.
166
     */
167
    public String getAbstract() {
168
        return lAbstract;
169
    }
170

  
171
    /**
172
     * Sets the layer abstract.
173
     * @param abstract The abstract to set.
174
     */
175
    public void setAbstract(String _abstract) {
176
        lAbstract = _abstract;
177
    }
178
    
179
    public void setLatLonBox(String _latLonBox) {
180
        latLonBox = _latLonBox;
181
    }
182

  
183
    public String getLatLonBox() {
184
        return latLonBox;
185
    }
186
    
187
    /**
188
     * Gets the list of sons of this layer.
189
     */
190
    public ArrayList getChildren() {
191
        return children;
192
    }
193
    
194
    /**
195
     * Sets the list of sons of this layer.
196
     * @param children
197
     */
198
    public void setChildren(ArrayList children) {
199
        this.children = children;
200
    }
201
    
202
    /**
203
     * @return Returns the transparency.
204
     */
205
    public boolean isTransparent() {
206
        return transparency;
207
    }
208

  
209
    /**
210
     * @param transparency The transparency to set.
211
     */
212
    public void setTransparency(boolean transparency) {
213
        this.transparency = transparency;
214
    }
215

  
216
	public int getWidth() {
217
		return width;
218
	}
219

  
220
	public void setWidth(int width) {
221
		this.width = width;
222
	}
223

  
224
	public int getHeight() {
225
		return height;
226
	}
227

  
228
	public void setHeight(int height) {
229
		this.height = height;
230
	}
231

  
232
}
0 233

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/FMapWCSParameter.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
package org.gvsig.raster.wcs.io;
23

  
24
import java.util.ArrayList;
25

  
26
/**
27
 * Class abstracting WCS's axis descriptions into FMap
28
 * @author jaume dominguez faus - jaume.dominguez@iver.es
29
 * @TODO add interval parameters support
30
 */
31
@SuppressWarnings("unchecked")
32
public class FMapWCSParameter {
33
	public static final int VALUE_LIST = 0;
34
	public static final int INTERVAL = 1;
35
	private String name;
36
	private int type;
37
	private ArrayList valueList;
38
	private String label;
39

  
40
	public void setName(String name) {
41
		this.name = name;
42
	}
43

  
44
	public void setType(int type) {
45
		this.type = type;
46
	}
47

  
48
	public int getType() {
49
		return type;
50
	}
51

  
52
	public void setValueList(ArrayList singleValues) {
53
		this.valueList = singleValues;
54
	}
55

  
56
	public void setLabel(String label) {
57
		this.label = label;
58
	}
59

  
60
	public String toString() {
61
		return (label!=null) ? label : name;
62
	}
63

  
64
	public ArrayList getValueList() {
65
		return valueList;
66
	}
67

  
68
	public String getName() {
69
		return name;
70
	}
71
}
0 72

  
org.gvsig.raster.wcs/tags/org.gvsig.raster.wcs-2.2.79/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSServerExplorer.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
package org.gvsig.raster.wcs.io;
29

  
30
import java.awt.geom.Point2D;
31
import java.io.IOException;
32
import java.io.InputStream;
33
import java.net.MalformedURLException;
34
import java.net.URI;
35
import java.net.URISyntaxException;
36
import java.net.URL;
37
import java.net.URLConnection;
38
import java.util.Hashtable;
39
import java.util.List;
40

  
41
import org.slf4j.Logger;
42
import org.slf4j.LoggerFactory;
43

  
44
import org.gvsig.compat.net.ICancellable;
45
import org.gvsig.fmap.dal.DALLocator;
46
import org.gvsig.fmap.dal.DataManager;
47
import org.gvsig.fmap.dal.DataServerExplorerParameters;
48
import org.gvsig.fmap.dal.DataStoreParameters;
49
import org.gvsig.fmap.dal.NewDataStoreParameters;
50
import org.gvsig.fmap.dal.coverage.exception.ConnectException;
51
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
52
import org.gvsig.fmap.dal.coverage.store.RasterDataServerExplorer;
53
import org.gvsig.fmap.dal.exception.DataException;
54
import org.gvsig.fmap.dal.exception.InitializeException;
55
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
56
import org.gvsig.fmap.dal.spi.AbstractDataServerExplorer;
57
import org.gvsig.fmap.dal.spi.DataServerExplorerProvider;
58
import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
59
import org.gvsig.i18n.Messages;
60

  
61
/**
62
 * Explorer for a WCS server
63
 * @author Nacho Brodin (nachobrodin@gmail.com)
64
 */
65
public class WCSServerExplorer extends AbstractDataServerExplorer implements RasterDataServerExplorer, DataServerExplorerProvider {
66
	private WCSConnector                connector                = null;
67
//	private WCSServerExplorerParameters parameters               = null;
68
	private static final Logger         logger                    = LoggerFactory.getLogger(WCSServerExplorer.class);
69

  
70

  
71
	public WCSServerExplorer(
72
			WCSServerExplorerParameters parameters,
73
			DataServerExplorerProviderServices services)
74
			throws InitializeException {
75
                super(parameters, services);
76
//		this.parameters = parameters;
77
	}
78

  
79
	/**
80
	 * Gets the provider's name
81
	 * @return
82
	 */
83
	public String getDataStoreProviderName() {
84
		return WCSProvider.NAME;
85
	}
86

  
87
	public String getDescription() {
88
		return WCSProvider.DESCRIPTION;
89
	}
90

  
91
	public boolean add(String provider, NewDataStoreParameters parameters,
92
			boolean overwrite) throws DataException {
93
		return false;
94
	}
95

  
96
	public boolean canAdd() {
97
		return false;
98
	}
99

  
100
	public boolean canAdd(String storeName) throws DataException {
101
		return false;
102
	}
103

  
104
	public NewDataStoreParameters getAddParameters(String storeName)
105
			throws DataException {
106
		return null;
107
	}
108

  
109
	public List getDataStoreProviderNames() {
110
		return null;
111
	}
112

  
113
	public WCSServerExplorerParameters getParameters() {
114
		return (WCSServerExplorerParameters) super.getParameters();
115
	}
116

  
117
	public List list() throws DataException {
118
		return null;
119
	}
120

  
121
	public List list(int mode) throws DataException {
122
		return null;
123
	}
124

  
125
	public void remove(DataStoreParameters parameters) throws DataException {
126

  
127
	}
128

  
129
	public String getProviderName() {
130
		return null;
131
	}
132

  
133
	/**
134
	 * Gets the online resources
135
	 * @return
136
	 */
137
	public Hashtable getOnlineResources() {
138
		return null;
139
	}
140

  
141
	//**********************************************
142
	//Connector
143
	//**********************************************
144

  
145
	public DataStoreParameters getStoredParameters() {
146
		DataManager manager = DALLocator.getDataManager();
147
		WCSDataParametersImpl params = null;
148
		try {
149
			params = (WCSDataParametersImpl) manager.createStoreParameters(this.getDataStoreProviderName());
150

  
151
		} catch (InitializeException e) {
152
            logger.warn("Can't get DataStoreParameters from WCSServerExplorer", e);
153
		} catch (ProviderNotRegisteredException e) {
154
            logger.warn("Can't get DataStoreParameters from WCSServerExplorer", e);
155
		}
156
		String host = getParameters().getHost();
157
		URI hostURI;
158
        try {
159
            hostURI = new URI(host);
160
            params.setURI(hostURI);
161
        } catch (URISyntaxException e) {
162
            logger.warn("Can't create URI from"+host, e);
163
        }
164
		return params;
165
	}
166

  
167
	/**
168
	 * Connects to the server and throws a getCapabilities. This loads
169
	 * the basic information to make requests.
170
	 * @throws RemoteServiceException
171
	 */
172
	public void connect(ICancellable cancellable) throws ConnectException {
173
		URL url = null;
174
		boolean override = false;
175

  
176
		try {
177
			url = new URL(getParameters().getHost());
178
		} catch (Exception e) {
179
			throw new ConnectException(Messages.getText("malformed_url"), e);
180
		}
181
        try {
182
        	connector = WCSProvider.getConnectorFromURL(url);
183
        	if (!connector.connect(override, cancellable))
184
        		throw new ConnectException(Messages.getText("error_connecting"));
185
        } catch (IOException e) {
186
			throw new ConnectException(Messages.getText("error_connecting"), e);
187
		}
188

  
189
	}
190

  
191
	/**
192
	 * Checks if the network and host are reachable
193
	 * @param timeout for the host
194
	 * @return true if both are reachable and false if they are not
195
	 */
196
	public boolean isHostReachable(int timeout) {
197
		URL url = null;
198
		try {
199
			url = new URL(getParameters().getHost());
200
			URLConnection con = url.openConnection();
201
			if(con == null)
202
				return false;
203
			con.connect();
204
			InputStream stream = con.getInputStream();
205
			if(stream == null)
206
				return false;
207
		} catch (MalformedURLException e) {
208
			return false;
209
		} catch (IOException e) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff