Revision 33106

View differences:

tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/Tests/Test.java
1
package org.gvsig.remoteclient.Tests;
2

  
3
import java.awt.geom.Rectangle2D;
4

  
5
import junit.framework.TestCase;
6

  
7
import org.gvsig.remoteclient.wms.WMSClient;
8
import org.gvsig.remoteclient.wms.WMSStatus;
9

  
10
public class Test extends TestCase
11
{
12

  
13
	public static void main(String[] args)
14
	{
15
		try
16
		{
17
			WMSClient wmsclient = new WMSClient("http://orto.cth.gva.es:80/wmsconnector/com.esri.wms.Esrimap/wms_urbanismo_tematicos?");
18
			//http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_urbanismo_tematicos?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=3&STYLES=&SRS=EPSG:4326&BBOX=-1.5597948439,37.8178641941,0.5286772976,40.8151000365&WIDTH=500&HEIGHT=500&FORMAT=image/jpeg&EXCEPTIONS=XML
19

  
20
			wmsclient.connect(null);
21
			//System.out.println();
22
			//System.out.println(Utilities.Vector2CS(layerNames));
23

  
24
			WMSStatus status = new WMSStatus();
25
			status.addLayerName("3");
26
//			status.addLayerName("europa_rivieren");
27
//			status.addStyleName("default");
28
//			status.addStyleName("default");
29
			status.setSrs("EPSG:4326");
30

  
31
			Rectangle2D extent = new Rectangle2D.Double(-1.5597948439,37.8178641941,-1.5597948439-0.5286772976,37.8178641941-40.8151000365);
32

  
33
			status.setExtent(extent);
34
			status.setFormat("image/jpeg");
35
			status.setHeight(500);
36
			status.setWidth(500);
37

  
38
			//wmsclient.getMap(status);
39

  
40
			//wmsclient.getFeatureInfo(status,300,300);
41

  
42
			System.out.println();
43
		}
44
		catch(Exception e)
45
		{
46
			System.out.println(e.getMessage());
47
		}
48
	}
49

  
50
}
0 51

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/wms/wms_1_1_1/WMSProtocolHandler_1_1_1Test.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package org.gvsig.remoteclient.wms.wms_1_1_1;
42

  
43
import java.io.File;
44

  
45
import junit.framework.TestCase;
46

  
47
/**
48
 * @author jaume dominguez faus - jaume.dominguez@iver.es
49
 */
50
public class WMSProtocolHandler_1_1_1Test extends TestCase {
51
	WMSProtocolHandler1_1_1 handler1, handler2, handler3, handler4;
52

  
53
	public void setUp() {
54
		System.out.println("Setting up test..");
55
		handler1 = new WMSProtocolHandler1_1_1();
56
	}
57

  
58

  
59

  
60
	public void testParsing() {
61
		long t1 = System.currentTimeMillis();
62
		handler1.parseCapabilities(new File("testdata/wms/wms.xml"));
63
		long t2 = System.currentTimeMillis();
64
		System.out.println("Test parsing done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
65
	}
66
}
67

  
0 68

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/wms/WMSStatusTest.java
1
package org.gvsig.remoteclient.wms;
2

  
3
import java.awt.geom.Rectangle2D;
4
import java.util.Vector;
5

  
6
import junit.framework.TestCase;
7
/**
8
 * 
9
 * @author jaume
10
 *
11
 */
12
public class WMSStatusTest extends TestCase {
13
	WMSStatus st1, st2, st3, st4;
14
    protected void setUp() {
15
    	st1 = new WMSStatus();
16
    	// Layer names
17
    	Vector v1 = new Vector();
18
    	v1.add("a");
19
    	v1.add("b");
20
    	v1.add("c");
21
    	st1.setLayerNames(v1);
22
    	v1.clear();
23
    	// Styles
24
    	v1.add("s1");
25
    	v1.add("s2");
26
    	v1.add("s3");
27
    	st1.setStyles(v1);
28
    	// Transparency
29
    	st1.setTransparency(false);
30
    	v1.clear();
31
    	v1.add("TIME=february");
32
    	v1.add("WAVELENGTH=200nm");
33
    	st1.setDimensions(v1);
34
    	// Extent
35
    	Rectangle2D rect1 = new Rectangle2D.Double(1.0, 1.00000001, 5.000000, 6.8);
36
    	st1.setExtent(rect1);
37
    	// Exception format
38
    	st1.setExceptionFormat("bla");
39
    	// SRS
40
    	st1.setSrs("bla bla");
41
    	// Format
42
    	st1.setFormat("image/mpeg");
43
    	// Width
44
    	st1.setWidth(800);
45
    	// Height
46
    	st1.setHeight(600);
47
    	// Online resource
48
    	st1.setOnlineResource("alkjf");
49
    	
50
    	st2 = new WMSStatus();
51
    	// Layer names
52
        Vector v2 = new Vector();
53
    	v2.add("a");
54
    	v2.add("b");
55
    	v2.add("c");
56
    	st2.setLayerNames(v2);
57
    	v2.clear();
58
    	// Styles
59
    	v2.add("s1");
60
    	v2.add("s2");
61
    	v2.add("s3");
62
    	st2.setStyles(v2);
63
    	// Transparency
64
    	st2.setTransparency(false);
65
    	v2.clear();
66
    	// Dimensions
67
    	v2.add("TIME=february");
68
    	v2.add("WAVELENGTH=200nm");
69
    	st2.setDimensions(v2);
70
    	// Extent
71
    	Rectangle2D rect2 = new Rectangle2D.Double(1.0, 1.00000001, 5.000000, 6.8);
72
    	st2.setExtent(rect2);
73
    	// Exception format
74
    	st2.setExceptionFormat("bla");
75
    	// SRS
76
    	st2.setSrs("bla bla");
77
    	// Format
78
    	st2.setFormat("image/mpeg");
79
    	// Width
80
    	st2.setWidth(800);
81
    	// Height
82
    	st2.setHeight(600);
83
    	// Online resource
84
    	st2.setOnlineResource("alkjf");
85
    	
86
    	st3 = new WMSStatus();
87
    	// Layer names
88
        Vector v3 = new Vector();
89
    	v3.add("a");
90
    	v3.add("b");
91
    	v3.add("c");
92
    	st3.setLayerNames(v3);
93
    	v3.clear();
94
    	// Styles
95
    	v3.add("s1");
96
    	v3.add("s2");
97
    	v3.add("s3");
98
    	st3.setStyles(v3);
99
    	// Transparency
100
    	st3.setTransparency(false);
101
    	v3.clear();
102
    	// Dimensions
103
    	v3.add("TIME=february");
104
    	v3.add("WAVELENGTH=200nm");
105
    	st3.setDimensions(v3);
106
    	// Extent
107
    	Rectangle2D rect3 = new Rectangle2D.Double(2.0, 1.00000001, 5.000000, 6.8);
108
    	st3.setExtent(rect3);
109
    	// Exception format
110
    	st3.setExceptionFormat("bla");
111
    	// SRS
112
    	st3.setSrs("bla bla");
113
    	// Format
114
    	st3.setFormat("image/mpeg");
115
    	// Width
116
    	st3.setWidth(800);
117
    	// Height
118
    	st3.setHeight(600);
119
    	// Online resource
120
    	st3.setOnlineResource("alkjf");
121
        
122
    	st4 = new WMSStatus(); 
123
        // Layer names
124
        Vector v4 = new Vector();
125
    	v4.add("a");
126
    	v4.add("b");
127
    	v4.add("c");
128
    	st4.setLayerNames(v4);
129
    	v4.clear();
130
    	// Styles
131
    	v4.add("s1");
132
    	v4.add("s2");
133
    	v4.add("s3");
134
    	st4.setStyles(v4);
135
    	// Transparency
136
    	st4.setTransparency(false);
137
    	v4.clear();
138
    	// Dimensions
139
    	v4.add("TIME=february");
140
    	v4.add("WAVELENGTH=200nm");
141
    	st4.setDimensions(v4);
142
    	// Extent
143
    	Rectangle2D rect4 = new Rectangle2D.Double(2.0, 1.00000001, 5.000000, 6.8);
144
    	st4.setExtent(rect3);
145
    	// Exception format
146
    	st4.setExceptionFormat("bla");
147
    	// SRS
148
    	st4.setSrs("bla bla");
149
    	// Format
150
    	st4.setFormat("image/mpeg");
151
    	// Width
152
    	st4.setWidth(800);
153
    	// Height
154
    	st4.setHeight(600);
155
    	// Online resource
156
    	st4.setOnlineResource("alkjfa");
157
    }
158

  
159
    public void testEquality() {
160
    	assertTrue(st1.equals(st2));
161
    	assertFalse(st1.equals(st3)); // (distinct extent)
162
    	assertFalse(st3.equals(st4)); // (distinct online resources)
163
    }
164
}
0 165

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/taskplanning/retrieving/URLRetrieveTest.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41

  
42
/* CVS MESSAGES:
43
 *
44
 * $Id$
45
 * $Log$
46
 * Revision 1.3  2006-05-16 17:10:27  jaume
47
 * *** empty log message ***
48
 *
49
 * Revision 1.2  2006/05/15 09:39:52  jaume
50
 * *** empty log message ***
51
 *
52
 * Revision 1.1  2006/05/12 07:45:49  jaume
53
 * some warnings removed
54
 *
55
 * Revision 1.1  2006/05/12 07:15:45  jaume
56
 * *** empty log message ***
57
 *
58
 *
59
 */
60
package org.gvsig.remoteclient.taskplanning.retrieving;
61

  
62
import java.io.File;
63

  
64
import junit.framework.TestCase;
65

  
66
import org.gvsig.remoteclient.taskplanning.IQueue;
67
import org.gvsig.remoteclient.taskplanning.IRunnableTask;
68
/**
69
 * 
70
 * @author jaume
71
 *
72
 */
73
public class URLRetrieveTest extends TestCase {
74
	private final static String tempDirectoryPath = System.getProperty("java.io.tmpdir")+"tmp-andami";
75
	IQueue queue;
76
	IRunnableTask task1, task2, task3, task4;
77
	boolean finished1, finished2, finished3, finished4;
78
	RetrieveListener listener1 = new RetrieveListener() {
79
		public void transferEventReceived(RetrieveEvent event) {
80
			int e = event.getType();
81
			printMessage("listener1", event.getType());
82
			if (e==RetrieveEvent.REQUEST_FINISHED || e == RetrieveEvent.REQUEST_FAILED || e == RetrieveEvent.REQUEST_CANCELLED )
83
				finished1 = true;
84
		}
85
	};
86
	
87
	String protocol = URLRequest.HTTP;
88
	String host1 = "192.168.0.223";
89
	String page1 = "cgi-bin/mapserv_46.exe?map=c:\\ms4w\\Apache\\cgi-bin\\demo.map&&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=comunidades&SRS=EPSG:23030&BBOX=507522.0,4154976.282477341,942309.0,4552983.717522658&WIDTH=332&HEIGHT=305&FORMAT=image/png&STYLES=&TRANSPARENT=TRUE";
90
	URLRequest request1;
91
	
92
	String host2 = "localhost";
93
	String page2 = "aegCapabilities1.3.xml";
94
	URLRequest request2;
95
	RetrieveListener listener2 = new RetrieveListener() {
96
		public void transferEventReceived(RetrieveEvent event) {
97
			int e = event.getType();
98
			printMessage("listener2", event.getType());
99
			if (e==RetrieveEvent.REQUEST_FINISHED || e == RetrieveEvent.REQUEST_FAILED || e==RetrieveEvent.REQUEST_CANCELLED )
100
				finished2 = true;
101

  
102
		}
103
	};
104
	
105
	String host3 = "localhost";
106
	String page3 = "avalencia.ecw";
107
	URLRequest request3;
108
	RetrieveListener listener3 = new RetrieveListener() {
109
		public void transferEventReceived(RetrieveEvent event) {
110
			int e = event.getType();
111
			printMessage("listener3", event.getType());
112
			if (e==RetrieveEvent.REQUEST_FINISHED || e == RetrieveEvent.REQUEST_FAILED  || e == RetrieveEvent.REQUEST_CANCELLED )
113
				finished3 = true;
114

  
115
		}
116
	};
117
	
118
	String host4 = "192.168.0.223";
119
	String page4 = "prueba.rar";
120
	URLRequest request4;
121
	RetrieveListener listener4 = new RetrieveListener() {
122
		public void transferEventReceived(RetrieveEvent event) {
123
			int e = event.getType();
124
			printMessage("listener4", event.getType());
125
			if (e==RetrieveEvent.REQUEST_FINISHED || e == RetrieveEvent.REQUEST_FAILED  || e == RetrieveEvent.REQUEST_CANCELLED )
126
				finished4 = true;
127

  
128
		}
129
	};
130
	{
131
		cleanFiles();
132
	}
133
	private static void cleanFiles(){
134
		try{
135
			File tempDirectory = new File(tempDirectoryPath);
136
			
137
			File[] files = tempDirectory.listFiles();
138
			if (files!=null) {
139
				for (int i = 0; i < files.length; i++) {
140
					// s?lo por si en un futuro se necesitan crear directorios temporales
141
					files[i].delete();
142
				}
143
			}
144
			tempDirectory.delete();
145
		} catch (Exception e) {	}
146
	}
147
	
148
	
149
	public void setUp() {
150
		File tmpDir = new File(tempDirectoryPath);
151
		if (!tmpDir.exists())
152
			tmpDir.mkdir();
153
		finished1 = finished2 = finished3 = finished4 = false;
154
		System.out.println("\n\n\nSetting up test..");
155
		queue = new RetrieveQueue("http://192.168.0.223/cgi-bin/mapserv_46.exe?map=c:\\ms4w\\Apache\\cgi-bin\\demo.map");
156
		
157
		request1 = new URLRequest();
158
		// http://192.168.0.223/cgi-bin/mapserv_46.exe?map=c:\\ms4w\\Apache\\cgi-bin\\demo.map&&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=comunidades&SRS=EPSG:23030&BBOX=507522.0,4154976.282477341,942309.0,4552983.717522658&WIDTH=332&HEIGHT=305&FORMAT=image/png&STYLES=&TRANSPARENT=TRUE
159
		request1.setProtocol(protocol);
160
		request1.setHost(host1);
161
		request1.setFile(page1);
162
		request1.setFileName(tempDirectoryPath+File.separator+"task1");
163
		request1.setRequestType(URLRequest.GET);
164
		task1 = new URLRetrieveTask(request1, listener1); 
165
		
166
		request2 = new URLRequest();
167
		// http://localhost/aegCapabilities1.3.xml
168
		request2.setProtocol(protocol);
169
		request2.setHost(host2);
170
		request2.setFile(page2);
171
		request2.setFileName(tempDirectoryPath+File.separator+"task2");
172
		request2.setRequestType(URLRequest.GET);
173
		task2 = new URLRetrieveTask(request2, listener2);
174
		
175
		request3 = new URLRequest();
176
		// http://localhost/avalencia.ecw
177
		request3.setProtocol(protocol);
178
		request3.setHost(host3);
179
		request3.setFile(page3);
180
		request3.setFileName(tempDirectoryPath+File.separator+"task3");
181
		request3.setRequestType(URLRequest.GET);
182
		task3 = new URLRetrieveTask(request3, listener3);
183
		
184
		request4 = new URLRequest();
185
		// http://192.168.0.223/prueba.rar
186
		request4.setProtocol(protocol);
187
		request4.setHost(host4);
188
		request4.setFile(page4);
189
		request4.setFileName(tempDirectoryPath+File.separator+"task4");
190
		request4.setRequestType(URLRequest.GET);
191
		
192
		task4 = new URLRetrieveTask(request4, listener4);
193
		
194
	}
195
	
196
	public void testRetrieve() {
197
		queue.put(task1);
198
		queue.put(task2);
199
		
200
		while(!queue.isEmpty()) {		
201
		}
202
	}
203
	
204
	public void testCancelling() {
205
		long time = System.currentTimeMillis();
206
		
207
		queue.put(task1);
208
		queue.put(task2);
209
		boolean more = true;
210
		while (!queue.isEmpty()) {
211
			if (more && System.currentTimeMillis()-time > 1000) { // wait 1 seconds and cancel
212
				task2.cancel();
213
				more = false;
214
			}
215
		}
216
	}
217
	
218
	public void testRequestManager() {
219
		System.out.println("tests parallel downloading from different servers");
220
		request3.setFileName("task3");
221
		// http://localhost/avalencia.ecw
222
		
223
		request4.setFileName("task4");
224
		// http://192.168.0.223/prueba.rar
225
		RequestManager manager = RequestManager.getInstance();
226
		manager.addURLRequest(request3, listener3);
227
		manager.addURLRequest(request4, listener4);
228
		manager.addURLRequest(request4, listener1);
229
		while (!(finished1 && finished3 && finished4)) { 
230
			
231
		}
232
	}
233
	
234
	public void testCocurrentTransfers() {
235
		finished1 = finished2 = finished3 = finished4 = false;
236
		System.out.println("tests to merge two or more equivalent transfers into one");
237
		RequestManager manager = RequestManager.getInstance();
238
		//manager.removeURLRequest(request3);
239
		request3.setFileName("task3");
240
		
241
		manager.addURLRequest(request3, listener1);
242
		manager.addURLRequest(request3, listener2);
243
		manager.addURLRequest(request3, listener3);
244
		
245
		manager.addURLRequest(request3, listener4);
246
		while (!(finished1 && finished2 && finished3 && finished4)) { 
247
			
248
		}
249
	}
250
	
251
	public void printMessage(String who, int code) {
252
		switch (code) {
253
		case RetrieveEvent.CONNECTING:
254
			System.out.println(who+": connecting");
255
			break;
256
		case RetrieveEvent.TRANSFERRING:
257
			System.out.println(who+": transferring");
258
			break;
259
		case RetrieveEvent.REQUEST_CANCELLED:
260
			System.out.println(who+": cancelled");
261
			break;
262
		case RetrieveEvent.REQUEST_FINISHED:
263
			System.out.println(who+": finished");
264
			break;
265
		case RetrieveEvent.REQUEST_FAILED:
266
			System.err.println(who+": failed");
267
			break;
268
		case RetrieveEvent.NOT_STARTED:
269
			System.out.println(who+": not started");
270
			break;
271
		case RetrieveEvent.POSTPROCESSING:
272
			System.out.println(who+": postprocessing");
273
			break;
274
		}
275
	}
276
}
0 277

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/AllTests.java
1
package org.gvsig.remoteclient;
2

  
3
import junit.framework.Test;
4
import junit.framework.TestSuite;
5

  
6
import org.gvsig.remoteclient.wcs.wcs_1_0_0.WCSProtocolHandler_1_0_0Test;
7
import org.gvsig.remoteclient.wfs.wfs_1_0_0.WFSProtocolHandlerTest1_0_0;
8
import org.gvsig.remoteclient.wfs.wfs_1_1_0.WFSProtocolHandlerTest1_1_0;
9
import org.gvsig.remoteclient.wms.WMSStatusTest;
10
import org.gvsig.remoteclient.wms.wms_1_1_1.WMSProtocolHandler_1_1_1Test;
11

  
12
public class AllTests {
13

  
14
	public static Test suite() {
15
		TestSuite suite = new TestSuite("Test for org.gvsig.remoteClient");
16
		//$JUnit-BEGIN$
17
		suite.addTestSuite(Test.class);
18
		
19
		//commented until there is a way to simulate the needed servers.
20
		//suite.addTestSuite(URLRetrieveTest.class);
21
		suite.addTestSuite(WCSProtocolHandler_1_0_0Test.class);
22
		suite.addTestSuite(WFSProtocolHandlerTest1_0_0.class);
23
		suite.addTestSuite(WFSProtocolHandlerTest1_1_0.class);
24
		suite.addTestSuite(WMSProtocolHandler_1_1_1Test.class);
25
		suite.addTestSuite(WMSStatusTest.class);
26
		
27
		//$JUnit-END$
28
		return suite;
29
	}
30

  
31
}
0 32

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/wcs/wcs_1_0_0/WCSProtocolHandler_1_0_0Test.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
/*
42
 * $Id$ 
43
 * $Log$
44
 * Revision 1.8  2006-05-12 07:45:49  jaume
45
 * some warnings removed
46
 *
47
 * Revision 1.7  2006/03/15 08:54:31  jaume
48
 * *** empty log message ***
49
 *
50
 * Revision 1.6  2006/03/06 07:16:08  jaume
51
 * *** empty log message ***
52
 *
53
 * Revision 1.5  2006/03/02 07:17:08  jaume
54
 * *** empty log message ***
55
 *
56
 * Revision 1.3  2006/03/01 18:07:11  jaume
57
 * *** empty log message ***
58
 *
59
 * Revision 1.2  2006/03/01 17:56:28  jaume
60
 * *** empty log message ***
61
 *
62
 * Revision 1.1  2006/02/28 15:26:59  jaume
63
 * *** empty log message ***
64
 * 
65
 */
66
package org.gvsig.remoteclient.wcs.wcs_1_0_0;
67

  
68
import java.io.File;
69

  
70
import junit.framework.TestCase;
71
/**
72
 * 
73
 * @author jaume
74
 *
75
 */
76
public class WCSProtocolHandler_1_0_0Test extends TestCase {
77
	WCSProtocolHandler1_0_0 handler1, handler2, handler3, handler4;
78
	
79
	public void setUp() {
80
		System.out.println("Setting up test..");
81
		handler1 = new WCSProtocolHandler1_0_0();
82
		handler2 = new WCSProtocolHandler1_0_0();
83
		handler3 = new WCSProtocolHandler1_0_0();
84
		handler4 = new WCSProtocolHandler1_0_0();
85
	}
86
	
87
	
88
	
89
	public void testParsing() {
90
		long t1 = System.currentTimeMillis();
91
		assertTrue(handler1.parseCapabilities(new File("testdata/wcs/WCS-hypnosGetCapabilities.xml")));
92
		assertTrue(handler1.parseDescribeCoverage(new File("testdata/wcs/WCS-hypnosDescribeCoverage.xml")));
93
		assertTrue(handler2.parseCapabilities(new File("testdata/wcs/WCS-simonCITCostasGetCapabilities.xml")));
94
		assertTrue(handler2.parseDescribeCoverage(new File("testdata/wcs/WCS-simonCITCostasDescribeCoverage.xml")));
95
		assertTrue(handler3.parseCapabilities(new File("testdata/wcs/WCS-simonCITSpotGetCapabilities.xml")));
96
		assertTrue(handler3.parseDescribeCoverage(new File("testdata/wcs/WCS-simonCITSpotDescribeCoverage.xml")));
97
		assertTrue(handler4.parseCapabilities(new File("testdata/wcs/WCS-ionicGetCapabilities.xml")));
98
		assertTrue(handler4.parseDescribeCoverage(new File("testdata/wcs/WCS-ionicDescribeCoverage.xml")));
99
		long t2 = System.currentTimeMillis();
100
		System.out.println("Test parsing done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
101
	}
102
}
0 103

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/wfs/wfs_1_0_0/WFSProtocolHandlerTest1_0_0.java
1
package org.gvsig.remoteclient.wfs.wfs_1_0_0;
2

  
3
import java.io.File;
4

  
5
import junit.framework.TestCase;
6
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
7
 *
8
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
9
 *
10
 * This program is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU General Public License
12
 * as published by the Free Software Foundation; either version 2
13
 * of the License, or (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program; if not, write to the Free Software
22
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
23
 *
24
 * For more information, contact:
25
 *
26
 *  Generalitat Valenciana
27
 *   Conselleria d'Infraestructures i Transport
28
 *   Av. Blasco Ib??ez, 50
29
 *   46010 VALENCIA
30
 *   SPAIN
31
 *
32
 *      +34 963862235
33
 *   gvsig@gva.es
34
 *      www.gvsig.gva.es
35
 *
36
 *    or
37
 *
38
 *   IVER T.I. S.A
39
 *   Salamanca 50
40
 *   46005 Valencia
41
 *   Spain
42
 *
43
 *   +34 963163400
44
 *   dac@iver.es
45
 */
46
/* CVS MESSAGES:
47
 *
48
 * $Id$
49
 * $Log$
50
 * Revision 1.2  2006-10-10 12:52:28  jorpiell
51
 * Soporte para features complejas.
52
 *
53
 * Revision 1.1  2006/08/10 12:00:49  jorpiell
54
 * Primer commit del driver de Gml
55
 *
56
 * Revision 1.3  2006/05/23 13:23:13  jorpiell
57
 * Se ha cambiado el final del bucle de parseado y se tiene en cuenta el online resource
58
 *
59
 * Revision 1.2  2006/04/20 16:39:16  jorpiell
60
 * A?adida la operacion de describeFeatureType y el parser correspondiente.
61
 *
62
 * Revision 1.1  2006/04/19 12:51:35  jorpiell
63
 * A?adidas algunas de las clases del servicio WFS
64
 *
65
 *
66
 */
67
/**
68
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
69
 */
70
public class WFSProtocolHandlerTest1_0_0 extends TestCase {
71
	WFSProtocolHandler1_0_0 handler;
72
	
73
	public void setUp() {
74
		System.out.println("Setting up test..");
75
		handler = new WFSProtocolHandler1_0_0();		
76
	}
77
	
78
	
79
	public void testParsingDescribeFeatureType() {
80
		long t1 = System.currentTimeMillis();
81
		assertTrue(handler.parseCapabilities(new File("testdata/wfs/WFS-dmsolutionsGetCapabilities.xml")));
82
		handler.setCurrentFeature("popplace");
83
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-dmsolutionsDescribeFeatureType.xml"),null));
84
		long t2 = System.currentTimeMillis();
85
		System.out.println("Test parsing vivid done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
86
	}
87
	
88
	public void testParsingDescribeFeatureType2() {
89
		long t1 = System.currentTimeMillis();
90
		assertTrue(handler.parseCapabilities(new File("testdata/wfs/WFS-sercartlinGetCapabilities.xml")));
91
		handler.setCurrentFeature("topp:tasmania_roads");
92
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-sercartlinDescribeFeatureType.xml"),"cit"));
93
		long t2 = System.currentTimeMillis();
94
		System.out.println("Test parsing sercartlin done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
95
	}
96
	
97
	public void testParsingDescribeFeatureType3() {
98
		long t1 = System.currentTimeMillis();
99
		assertTrue(handler.parseCapabilities(new File("testdata/wfs/WFS-IDEEGetCapabilities.xml")));
100
		handler.setCurrentFeature("BDLL200_Provincia");
101
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-IDEEDescribeFeatureType.xml"),null));
102
		long t2 = System.currentTimeMillis();
103
		System.out.println("Test parsing TNT done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
104
	}
105
	
106

  
107
	
108
}
0 109

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/test/org/gvsig/remoteclient/wfs/wfs_1_1_0/WFSProtocolHandlerTest1_1_0.java
1
package org.gvsig.remoteclient.wfs.wfs_1_1_0;
2

  
3
import java.io.File;
4

  
5
import junit.framework.TestCase;
6
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
7
 *
8
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
9
 *
10
 * This program is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU General Public License
12
 * as published by the Free Software Foundation; either version 2
13
 * of the License, or (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program; if not, write to the Free Software
22
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
23
 *
24
 * For more information, contact:
25
 *
26
 *  Generalitat Valenciana
27
 *   Conselleria d'Infraestructures i Transport
28
 *   Av. Blasco Ib??ez, 50
29
 *   46010 VALENCIA
30
 *   SPAIN
31
 *
32
 *      +34 963862235
33
 *   gvsig@gva.es
34
 *      www.gvsig.gva.es
35
 *
36
 *    or
37
 *
38
 *   IVER T.I. S.A
39
 *   Salamanca 50
40
 *   46005 Valencia
41
 *   Spain
42
 *
43
 *   +34 963163400
44
 *   dac@iver.es
45
 */
46
/* CVS MESSAGES:
47
 *
48
 * $Id$
49
 * $Log$
50
 * Revision 1.1  2007-02-09 14:11:01  jorpiell
51
 * Primer piloto del soporte para WFS 1.1 y para WFS-T
52
 *
53
 *
54
 */
55
/**
56
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
57
 */
58
public class WFSProtocolHandlerTest1_1_0 extends TestCase {
59
	WFSProtocolHandler1_1_0 handler;
60
	
61
	public void setUp() {
62
		System.out.println("Setting up test..");
63
		handler = new WFSProtocolHandler1_1_0();		
64
	}
65
	
66
	public void testParsingDescribeFeatureType1() {
67
//		long t1 = System.currentTimeMillis();
68
//		assertTrue(handler.parseCapabilities(new File("test/WFS-1_1_0SercartlinGetCapabilities.xml")));
69
//		handler.setCurrentFeature("popplace");
70
//		
71
//		assertTrue(handler.parseDescribeFeatureType(new File("test/WFS-dmsolutionsDescribeFeatureType.xml"),null));
72
//		long t2 = System.currentTimeMillis();
73
//		System.out.println("Test parsing vivid done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
74
	}
75
	
76
	public void testParsingDescribeFeatureType2() {
77
		long t1 = System.currentTimeMillis();
78
		assertTrue(handler.parseCapabilities(new File("testdata/wfs/WFS-1_1_0IDEEGetCapabilities.xml")));
79
		handler.setCurrentFeature("ideewfs:VerticeRedOrdenInferior");
80
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-1_1_0IDEEDescribeFeatureType.xml"),null));
81
		long t2 = System.currentTimeMillis();
82
		Object obj = handler.getFeatures().get("ideewfs:VerticeRedOrdenInferior");
83
		System.out.println("Test parsing vivid done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
84
	}
85
	
86
	public void testParsingDescribeFeatureTypeTNT() {
87
		long t1 = System.currentTimeMillis();
88
		assertTrue(handler.parseCapabilities(new File("testdata/wfs/WFS-1_1_0TNTGetCapabilities.xml")));
89
		handler.setCurrentFeature("BDLL200_Provincia");
90
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-1_1_0TNTDescribeFeatureType1.xml"),null));
91
		assertTrue(handler.parseDescribeFeatureType(new File("testdata/wfs/WFS-1_1_0TNTDescribeFeatureType2.xml"),null));
92
		long t2 = System.currentTimeMillis();
93
		System.out.println("Test parsing IDEE done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
94
	}
95
}
0 96

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/src/org/gvsig/remoteclient/ILayer.java
1

  
2
package org.gvsig.remoteclient;
3
/**
4
 * <p></p>
5
 * 
6
 */
7
public interface ILayer {
8
/**
9
 * <p>Does ...</p>
10
 * 
11
 * 
12
 * @return 
13
 */
14
    public String getName();
15
/**
16
 * <p>Does ...</p>
17
 * 
18
 * 
19
 * @param _name 
20
 */
21
    public void setName(String _name);
22
/**
23
 * <p>Does ...</p>
24
 * 
25
 * 
26
 * @param _title 
27
 */
28
    public void setTitle(String _title);
29
/**
30
 * <p>Does ...</p>
31
 * 
32
 * 
33
 * @return 
34
 */
35
    public String getTitle();
36
/**
37
 * <p>Does ...</p>
38
 * 
39
 * 
40
 * @return 
41
 */
42
    public String getAbstract();
43
/**
44
 * <p>Does ...</p>
45
 * 
46
 * 
47
 * @param _abstract 
48
 */
49
    public void setAbstract(String _abstract);
50
}
51

  
52

  
0 53

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/src/org/gvsig/remoteclient/conf/logger.properties
1
# LOGGER PROPERTIES
2

  
3
## limit is ignored if its value is empty or if its value is set to zero.
4
## Note: this property only affects info messages.
5
#log4j.info.maxsize=
6

  
7
## Set root category priority to DEBUG and its only appender to stdout.
8
## on a windows machine:
9
#log4j.rootCategory=DEBUG, stdout
10
# on the freya:
11
log4j.rootCategory=DEBUG, file
12
#log4j.rootCategory=FATAL
13

  
14
## stdout is set to be a ConsoleAppender which outputs to System.out.
15
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
16
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
17
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
18

  
19
log4j.appender.file=org.apache.log4j.RollingFileAppender
20
log4j.appender.file.File=C:\\projects\\gvsig\\RemoteMapClients.log
21
log4j.appender.file.MaxBackupIndex=1
22
log4j.appender.file.MaxFileSize=100KB
23
log4j.appender.file.layout=org.apache.log4j.PatternLayout
24
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
25

  
26

  
27
##
28
## Package Logging 
29
##
30
## Each package can have its own appender
31
##
32
## Priorities are as follows :
33
##
34
## 1. FATAL
35
## 2. ERROR
36
## 3. WARN
37
## 4. INFO
38
## 5. DEBUG
39
##
40
## If a package has a priority of DEBUG, this means all
41
## messages will be shown in the log. If the priority is
42
## INFO, then all messages with a minimum priory of INFO will
43
## be shown i.e. INFO, WARN, ERROR and FATAL
44
##
45
## For minimum log output, set the priority to FATAL
46
##
47

  
48

  
49
#log4j.category.nl.rivm.rrgs.log.NogEenTester=DEBUG, R1
50
 
51
#log4j.appender.R1=org.apache.log4j.RollingFileAppender
52
#log4j.appender.R1.File=d:\\Test1.log
53
#log4j.appender.R1.MaxBackupIndex=1
54
#log4j.appender.R1.MaxFileSize=100KB
55
#log4j.appender.R1.layout=org.apache.log4j.PatternLayout
56
#log4j.appender.R1.layout.ConversionPattern=%d %p %t %c - %m%n
57

  
58

  
59
#log4j.category.nl.rivm.rrgs.log.Tester=DEBUG, R
60

  
61
#log4j.appender.R=org.apache.log4j.RollingFileAppender
62
#log4j.appender.R.File=d:\\Test.log
63
#log4j.appender.R.MaxBackupIndex=1
64
#log4j.appender.R.MaxFileSize=100KB
65
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
66
#log4j.appender.R.layout.ConversionPattern=%d %p %t %c - %m%n
0 67

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/src/org/gvsig/remoteclient/wms/wms_1_3_0/WMSLayer1_3_0.java
1

  
2
package org.gvsig.remoteclient.wms.wms_1_3_0;
3

  
4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.TreeMap;
7

  
8
import org.gvsig.remoteclient.utils.BoundaryBox;
9
import org.gvsig.remoteclient.utils.CapabilitiesTags;
10
import org.gvsig.remoteclient.utils.Utilities;
11
import org.gvsig.remoteclient.wms.WMSDimension;
12
import org.kxml2.io.KXmlParser;
13
import org.xmlpull.v1.XmlPullParserException;
14

  
15

  
16
/**
17
 * <p>WMS Layer for WMS 1.3.0</p>
18
 * 
19
 */
20
public class WMSLayer1_3_0 extends org.gvsig.remoteclient.wms.WMSLayer {
21
    
22
    
23
    public ArrayList getDimensions()
24
    {   
25
        WMSDimension pDimension;
26
        WMSDimension myDimension;    
27
        ArrayList myDimensions = (ArrayList) this.dimensions.clone();        
28
        ArrayList pDimensions;
29
        
30
        if (parent!=null)
31
        {
32
        	pDimensions = parent.getDimensions();
33
        	for (int i= 0; i < pDimensions.size(); i++){
34
        		pDimension = (WMSDimension)pDimensions.get(i);
35
        		myDimension = getDimension(pDimension.getName());
36
        		if (myDimension != null){
37
        			pDimensions.remove(pDimension);
38
        		}
39
        	}
40
        	myDimensions.addAll(pDimensions);
41
        }
42
        return myDimensions;
43
    }
44
    
45
    public WMSLayer1_3_0()
46
    {
47
        children = new ArrayList();
48
    }
49
    /**
50
     * <p>Parses the contents of the parser(WMSCapabilities)
51
     * to extract the information about an WMSLayer</p>
52
     * 
53
     */
54
    public void parse(KXmlParser parser, TreeMap layerTreeMap)
55
    throws IOException, XmlPullParserException
56
    {
57
        int currentTag;
58
        boolean end = false;
59
        String value;
60
        BoundaryBox bbox;
61
        parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.LAYER);
62
        
63
        readLayerAttributes( parser );
64
        
65
        currentTag = parser.nextTag();
66
        
67
        while (!end) 
68
        {
69
            switch(currentTag)
70
            {
71
                case KXmlParser.START_TAG:
72
                    if (parser.getName().compareTo(CapabilitiesTags.LAYER)==0)
73
                    {	
74
                        WMSLayer1_3_0 lyr = new WMSLayer1_3_0();						
75
                        //parser.next(); 
76
                        lyr.parse(parser, layerTreeMap);
77
                        lyr.setParent(this);
78
                        this.children.add(lyr);
79
                        // Jaume
80
                        if (lyr.getName()!=null)
81
                            layerTreeMap.put(lyr.getName(), lyr);
82
                    }
83
                    else if (parser.getName().compareTo(CapabilitiesTags.ATTRIBUTION)==0){
84
                        // TODO comprobar que esto se necesite o se deseche
85
                        parser.skipSubTree();
86
                    }
87
                    else if (parser.getName().compareTo(CapabilitiesTags.NAME)==0)
88
                    {		
89
                        value = parser.nextText();
90
                        if (value != null) setName(value);						
91
                    }	
92
                    else if (parser.getName().compareTo(CapabilitiesTags.TITLE)==0)
93
                    {
94
                        value = parser.nextText();
95
                        if (value != null) setTitle(value);
96
                    }
97
                    else if (parser.getName().compareTo(CapabilitiesTags.ABSTRACT)==0)
98
                    {
99
                        value = parser.nextText();
100
                        if (value != null) setAbstract(value);
101
                    }
102
                    else if (parser.getName().compareTo(CapabilitiesTags.CRS)==0)
103
                    {
104
                    	//TODO:
105
                    	//comentar esto y a?adir solo los SRS o CRS que incluyan un extent...
106
                        value = parser.nextText();
107
                        if (value != null){
108
                            String[] mySRSs = value.split(" ");
109
                            for (int i = 0; i < mySRSs.length; i++) {
110
                                addSrs(mySRSs[i]);    
111
                            }                        
112
                        }
113
                    }					
114
                    else if (parser.getName().compareTo(CapabilitiesTags.BOUNDINGBOX)==0)
115
                    {
116
                        bbox = new BoundaryBox();
117
                        value = parser.getAttributeValue("",CapabilitiesTags.CRS);
118
                        if (value != null)
119
                            bbox.setSrs(value);
120
                        value = parser.getAttributeValue("",CapabilitiesTags.MINX);
121
                        if ((value != null) && (Utilities.isNumber(value)))
122
                            bbox.setXmin(Double.parseDouble(value));	
123
                        value = parser.getAttributeValue("",CapabilitiesTags.MINY);
124
                        if ((value != null) && (Utilities.isNumber(value)))
125
                            bbox.setYmin(Double.parseDouble(value));	
126
                        value = parser.getAttributeValue("",CapabilitiesTags.MAXX);
127
                        if ((value != null) && (Utilities.isNumber(value)))
128
                            bbox.setXmax(Double.parseDouble(value));	
129
                        value = parser.getAttributeValue("",CapabilitiesTags.MAXY);
130
                        if ((value != null) && (Utilities.isNumber(value)))
131
                            bbox.setYmax(Double.parseDouble(value));	
132
                        
133
                        //X and Y spatial resolution in the units if that CRS.
134
                        //value = parser.getAttributeValue("",CapabilitiesTags.RESX);
135
                        //if ((value != null) && (Utilities.isNumber(value)))
136
                            //bbox.setYmax(Double.parseDouble(value));
137
                        //value = parser.getAttributeValue("",CapabilitiesTags.RESY);
138
                        //if ((value != null) && (Utilities.isNumber(value)))
139
                            //bbox.setYmax(Double.parseDouble(value));
140
                        
141
                        addBBox(bbox);
142
                        addSrs(bbox.getSrs());
143
                    }	
144
                    else if (parser.getName().compareTo(CapabilitiesTags.EX_GEOGRAPHICBOUNDINGBOX)==0)
145
                    {
146
                    	//minimum bounding rectangle in decimal degrees of the area covered by the layer.
147
                        bbox = parseEXGeographicBBTag(parser);	
148
                        addBBox(bbox);
149
                        setLatLonBox(bbox);
150
                        addSrs(bbox.getSrs());
151
                    }						
152
                    else if (parser.getName().compareTo(CapabilitiesTags.SCALEHINT)==0)
153
                    {
154
                        value = parser.getAttributeValue("",CapabilitiesTags.MIN);
155
                        if ((value != null) && (Utilities.isNumber(value)))
156
                            setScaleMin(Double.parseDouble(value));
157
                        value = parser.getAttributeValue("",CapabilitiesTags.MAX);
158
                        if ((value != null) && (Utilities.isNumber(value)))
159
                            setScaleMax(Double.parseDouble(value));																	
160
                    }						
161
                    else if (parser.getName().compareTo(CapabilitiesTags.STYLE)==0)
162
                    {
163
                        WMSStyle1_3_0 style = new WMSStyle1_3_0();
164
                        style.parse(parser);
165
                        if ((style != null) && (style.getName() != null))
166
                        {
167
                            styles.add(style);
168
                        }
169
                    }
170
                    else if (parser.getName().compareTo(CapabilitiesTags.DIMENSION)==0)
171
                    {
172
                        WMSDimension dim = new WMSDimension();
173
                        dim.parse(parser);
174
                        if ((dim != null) && (dim.getName() != null))
175
                        {
176
                            addDimension(dim);
177
                            
178
                        }
179
                    }                
180
                    else if (parser.getName().compareTo(CapabilitiesTags.KEYWORDLIST)==0)
181
                    {
182
                    	parseKeywordList(parser);
183
                    }                     
184
                    break;
185
                case KXmlParser.END_TAG:
186
                    if (parser.getName().compareTo(CapabilitiesTags.LAYER) == 0)
187
                        end = true;
188
                    break;
189
                case KXmlParser.TEXT:					
190
                    break;
191
            }
192
            if (!end)
193
            	currentTag = parser.next();
194
        }
195
        parser.require(KXmlParser.END_TAG, null, CapabilitiesTags.LAYER);
196
    }      
197
  
198
    
199
    /**
200
     * <p>Parses the EX_GeographicBoundingBox </p>
201
     */    
202
    private BoundaryBox parseEXGeographicBBTag(KXmlParser parser) throws IOException, XmlPullParserException 
203
    {
204
    	int currentTag;
205
    	boolean end = false;
206
    	BoundaryBox bbox = new BoundaryBox ();
207
    	String value;
208
    	
209
    	parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.EX_GEOGRAPHICBOUNDINGBOX);
210
    	currentTag = parser.next();
211
    	
212
    	while (!end) 
213
    	{
214
			 switch(currentTag)
215
			 {
216
				case KXmlParser.START_TAG:
217
					if (parser.getName().compareTo(CapabilitiesTags.WESTBOUNDLONGITUDE)==0)
218
					{
219
						value = parser.nextText();	                       
220
	                    if ((value != null) && (Utilities.isNumber(value)))
221
	                    	bbox.setXmin(Double.parseDouble(value));
222
					}	
223
					else if (parser.getName().compareTo(CapabilitiesTags.EASTBOUNDLONGITUDE)==0)
224
					{
225
						value = parser.nextText();	                       
226
	                    if ((value != null) && (Utilities.isNumber(value)))
227
	                    	bbox.setXmax(Double.parseDouble(value));
228
					}
229
					else if (parser.getName().compareTo(CapabilitiesTags.NORTHBOUNDLATITUDE)==0)
230
					{
231
						value = parser.nextText();	                       
232
	                    if ((value != null) && (Utilities.isNumber(value)))
233
	                    	bbox.setYmax(Double.parseDouble(value));
234
					}
235
					else if (parser.getName().compareTo(CapabilitiesTags.SOUTHBOUNDLATITUDE)==0)
236
					{
237
						value = parser.nextText();	                       
238
	                    if ((value != null) && (Utilities.isNumber(value)))
239
	                    	bbox.setYmin(Double.parseDouble(value));
240
					}					
241
					break;
242
				case KXmlParser.END_TAG:
243
					if (parser.getName().compareTo(CapabilitiesTags.EX_GEOGRAPHICBOUNDINGBOX) == 0)
244
						end = true;
245
					break;
246
				case KXmlParser.TEXT:					
247
					break;
248
			 }
249
             if (!end)
250
                 currentTag = parser.next();
251
    	}    	
252
    	parser.require(KXmlParser.END_TAG, null, CapabilitiesTags.EX_GEOGRAPHICBOUNDINGBOX);
253
    	
254
    	//TODO: 
255
    	bbox.setSrs("CRS:84");
256
    	return bbox;
257
    }
258
    
259
    public String toString(){
260
        return super.toString();
261
    }
262
}
0 263

  
tags/v2_0_0_Build_2009/libraries/libRemoteServices/src/org/gvsig/remoteclient/wms/wms_1_3_0/WMSProtocolHandler1_3_0.java
1

  
2
package org.gvsig.remoteclient.wms.wms_1_3_0;
3

  
4
import java.io.ByteArrayInputStream;
5
import java.io.File;
6
import java.io.IOException;
7
import java.util.ArrayList;
8
import java.util.TreeMap;
9

  
10
import org.gvsig.remoteclient.utils.CapabilitiesTags;
11
import org.gvsig.remoteclient.utils.EncodingXMLParser;
12
import org.gvsig.remoteclient.utils.ExceptionTags;
13
import org.gvsig.remoteclient.wms.WMSServiceInformation;
14
import org.gvsig.remoteclient.wms.WMSStatus;
15
import org.gvsig.remoteclient.wms.request.WMSGetCapabilitiesRequest;
16
import org.gvsig.remoteclient.wms.request.WMSGetFeatureInfoRequest;
17
import org.gvsig.remoteclient.wms.request.WMSGetLegendGraphicRequest;
18
import org.gvsig.remoteclient.wms.request.WMSGetMapRequest;
19
import org.gvsig.remoteclient.wms.wms_1_3_0.request.WMSGetCapabilitiesRequest1_3_0;
20
import org.gvsig.remoteclient.wms.wms_1_3_0.request.WMSGetFeatureInfoRequest1_1_3;
21
import org.gvsig.remoteclient.wms.wms_1_3_0.request.WMSGetLegendGraphicRequest1_1_3;
22
import org.gvsig.remoteclient.wms.wms_1_3_0.request.WMSGetMapRequest1_1_3;
23
import org.kxml2.io.KXmlParser;
24
import org.xmlpull.v1.XmlPullParserException;
25

  
26
/**
27
 * <p>
28
 * Describes the handler to comunicate to a WMS 1.3.0
29
 * </p>
30
 */
31
public class WMSProtocolHandler1_3_0 extends org.gvsig.remoteclient.wms.WMSProtocolHandler {
32
	private WMSLayer1_3_0 fakeRootLayer;
33
    
34
	public WMSProtocolHandler1_3_0()
35
	{
36
		this.version = "1.3.0";
37
		this.name = "WMS1.3.0";
38
		this.serviceInfo = new WMSServiceInformation(); 
39
		this.layers = new TreeMap();		   
40
	}
41
    
42
//------------------------------------------------------------------------------
43
// Parsing methods....    
44
//------------------------------------------------------------------------------    
45

  
46
    public boolean parseCapabilities(File f)
47
    {   
48
    	rootLayer = null;
49
    	
50
    	int tag;
51
      	EncodingXMLParser kxmlParser = null;
52
    	kxmlParser = new EncodingXMLParser();
53
    	try
54
    	{
55
    	   	kxmlParser.setInput(f);
56
			kxmlParser.nextTag();
57
    		if ( kxmlParser.getEventType() != KXmlParser.END_DOCUMENT ) 
58
    		{    		
59
    			kxmlParser.require(KXmlParser.START_TAG, null, CapabilitiesTags.CAPABILITIES_ROOT1_3_0);    			
60
    			tag = kxmlParser.nextTag();
61
				 while(tag != KXmlParser.END_DOCUMENT)
62
				 {
63
                     switch(tag)
64
					 {                       
65
						case KXmlParser.START_TAG:
66
							if (kxmlParser.getName().compareTo(CapabilitiesTags.SERVICE )==0)
67
							{
68
								parseServiceTag(kxmlParser);
69
							}	
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff