Revision 11079

View differences:

org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/test/resources/wms/wms.xml
1
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2013 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 3
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"
28
 [
29
 <!ELEMENT VendorSpecificCapabilities EMPTY>
30
 ]>  <!-- end of DOCTYPE declaration -->
31

  
32
<WMT_MS_Capabilities version="1.3.0">
33

  
34
<!-- MapServer version 4.10.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=SDE INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG -->
35

  
36
<Service>
37
  <Name>OGC:WMS</Name>
38
  <Title>WMS Server</Title>
39
  <Abstract>CHG WMS Server</Abstract>
40
        <KeywordList>
41
          <Keyword>WMS</Keyword>
42
          <Keyword> Servidor de mapas en red</Keyword>
43
        </KeywordList>
44
  <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/>
45
  <ContactInformation>
46
    <ContactAddress>
47
<!-- WARNING: Mandatory metadata '..._addresstype' was missing in this context. -->
48
        <Address>Avda. de Portugal s/n</Address>
49
        <City>Sevilla</City>
50
        <StateOrProvince>Sevilla</StateOrProvince>
51
        <PostCode>41004</PostCode>
52
        <Country>Spain</Country>
53
    </ContactAddress>
54
  </ContactInformation>
55
</Service>
56

  
57
<Capability>
58
  <Request>
59
    <GetCapabilities>
60
      <Format>application/vnd.ogc.wms_xml</Format>
61
      <DCPType>
62
        <HTTP>
63
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
64
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
65
        </HTTP>
66
      </DCPType>
67
    </GetCapabilities>
68
    <GetMap>
69
      <Format>image/jpeg</Format>
70
      <Format>image/gif</Format>
71
      <Format>image/png</Format>
72
      <Format>image/png; mode=24bit</Format>
73
      <Format>image/wbmp</Format>
74
      <Format>image/tiff</Format>
75
      <DCPType>
76
        <HTTP>
77
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
78
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
79
        </HTTP>
80
      </DCPType>
81
    </GetMap>
82
    <GetFeatureInfo>
83
      <Format>text/plain</Format>
84
      <Format>application/vnd.ogc.gml</Format>
85
      <DCPType>
86
        <HTTP>
87
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
88
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
89
        </HTTP>
90
      </DCPType>
91
    </GetFeatureInfo>
92
    <DescribeLayer>
93
      <Format>text/xml</Format>
94
      <DCPType>
95
        <HTTP>
96
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
97
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
98
        </HTTP>
99
      </DCPType>
100
    </DescribeLayer>
101
    <GetLegendGraphic>
102
      <Format>image/jpeg</Format>
103
      <Format>image/gif</Format>
104
      <Format>image/png</Format>
105
      <Format>image/png; mode=24bit</Format>
106
      <Format>image/wbmp</Format>
107
      <DCPType>
108
        <HTTP>
109
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
110
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
111
        </HTTP>
112
      </DCPType>
113
    </GetLegendGraphic>
114
    <GetStyles>
115
      <Format>text/xml</Format>
116
      <DCPType>
117
        <HTTP>
118
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
119
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
120
        </HTTP>
121
      </DCPType>
122
    </GetStyles>
123
  </Request>
124
  <Exception>
125
    <Format>application/vnd.ogc.se_xml</Format>
126
    <Format>application/vnd.ogc.se_inimage</Format>
127
    <Format>application/vnd.ogc.se_blank</Format>
128
  </Exception>
129
  <VendorSpecificCapabilities />
130
  <UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1" RemoteWFS="0"/>
131
  <Layer>
132
    <Name>CHG</Name>
133
    <Title>WMS Server</Title>
134
    <SRS>epsg:23030</SRS>
135
    <LatLonBoundingBox minx="-6.84474" miny="36.6506" maxx="-2.09263" maxy="38.5449" />
136
    <BoundingBox SRS="EPSG:23030"
137
                minx="164590" miny="4.06274e+006" maxx="579080" maxy="4.26635e+006" />
138
    <Layer queryable="0" opaque="0" cascaded="0">
139
        <Name>time_idx</Name>
140
        <Title>TIME INDEX</Title>
141
        <SRS>EPSG:23030</SRS>
142
        <LatLonBoundingBox minx="-6.8471" miny="36.682" maxx="-2.16907" maxy="38.75" />
143
        <BoundingBox SRS="EPSG:23030"
144
                    minx="165338" miny="4.0662e+006" maxx="572211" maxy="4.2891e+006" />
145
        <Dimension name="time" units="ISO8601"/>
146
        <Extent name="time" nearestValue="0">2004-01-01/2004-12-1/15D</Extent>
147
    </Layer>
148
    <Layer>
149
      <Name>NDVI</Name>
150
      <Title>NDVI</Title>
151
      <Abstract>NDVI</Abstract>
152
      <Layer queryable="0" opaque="0" cascaded="0">
153
        <Name>NDVI</Name>
154
        <Title>NDVI</Title>
155
        <SRS>EPSG:23030</SRS>
156
        <LatLonBoundingBox minx="-6.8471" miny="36.682" maxx="-2.16907" maxy="38.75" />
157
        <BoundingBox SRS="EPSG:23030"
158
                    minx="165338" miny="4.0662e+006" maxx="572211" maxy="4.2891e+006" />
159
        <Dimension name="time" units="ISO8601"/>
160
        <Extent name="time" default="2004-01-01" nearestValue="0">2004-01-01/2004-12-1/15D</Extent>
161
      </Layer>
162
    </Layer>
163
  </Layer>
164
</Capability>
165
</WMT_MS_Capabilities>
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/test/resources/wms/wms
1
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
2
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"
3
 [
4
 <!ELEMENT VendorSpecificCapabilities EMPTY>
5
 ]>  <!-- end of DOCTYPE declaration -->
6

  
7
<WMT_MS_Capabilities version="1.1.1">
8

  
9
<!-- MapServer version 4.10.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=SDE INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG -->
10

  
11
<Service>
12
  <Name>OGC:WMS</Name>
13
  <Title>WMS Server</Title>
14
  <Abstract>CHG WMS Server</Abstract>
15
        <KeywordList>
16
          <Keyword>WMS</Keyword>
17
          <Keyword> Servidor de mapas en red</Keyword>
18
        </KeywordList>
19
  <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/>
20
  <ContactInformation>
21
    <ContactAddress>
22
<!-- WARNING: Mandatory metadata '..._addresstype' was missing in this context. -->
23
        <Address>Avda. de Portugal s/n</Address>
24
        <City>Sevilla</City>
25
        <StateOrProvince>Sevilla</StateOrProvince>
26
        <PostCode>41004</PostCode>
27
        <Country>Spain</Country>
28
    </ContactAddress>
29
  </ContactInformation>
30
</Service>
31

  
32
<Capability>
33
  <Request>
34
    <GetCapabilities>
35
      <Format>application/vnd.ogc.wms_xml</Format>
36
      <DCPType>
37
        <HTTP>
38
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
39
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
40
        </HTTP>
41
      </DCPType>
42
    </GetCapabilities>
43
    <GetMap>
44
      <Format>image/jpeg</Format>
45
      <Format>image/gif</Format>
46
      <Format>image/png</Format>
47
      <Format>image/png; mode=24bit</Format>
48
      <Format>image/wbmp</Format>
49
      <Format>image/tiff</Format>
50
      <DCPType>
51
        <HTTP>
52
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
53
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
54
        </HTTP>
55
      </DCPType>
56
    </GetMap>
57
    <GetFeatureInfo>
58
      <Format>text/plain</Format>
59
      <Format>application/vnd.ogc.gml</Format>
60
      <DCPType>
61
        <HTTP>
62
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
63
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
64
        </HTTP>
65
      </DCPType>
66
    </GetFeatureInfo>
67
    <DescribeLayer>
68
      <Format>text/xml</Format>
69
      <DCPType>
70
        <HTTP>
71
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
72
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
73
        </HTTP>
74
      </DCPType>
75
    </DescribeLayer>
76
    <GetLegendGraphic>
77
      <Format>image/jpeg</Format>
78
      <Format>image/gif</Format>
79
      <Format>image/png</Format>
80
      <Format>image/png; mode=24bit</Format>
81
      <Format>image/wbmp</Format>
82
      <DCPType>
83
        <HTTP>
84
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
85
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
86
        </HTTP>
87
      </DCPType>
88
    </GetLegendGraphic>
89
    <GetStyles>
90
      <Format>text/xml</Format>
91
      <DCPType>
92
        <HTTP>
93
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Get>
94
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sanlucar:81/cgi-bin/wms?"/></Post>
95
        </HTTP>
96
      </DCPType>
97
    </GetStyles>
98
  </Request>
99
  <Exception>
100
    <Format>application/vnd.ogc.se_xml</Format>
101
    <Format>application/vnd.ogc.se_inimage</Format>
102
    <Format>application/vnd.ogc.se_blank</Format>
103
  </Exception>
104
  <VendorSpecificCapabilities />
105
  <UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1" RemoteWFS="0"/>
106
  <Layer>
107
    <Name>CHG</Name>
108
    <Title>WMS Server</Title>
109
    <SRS>epsg:23030</SRS>
110
    <LatLonBoundingBox minx="-6.84474" miny="36.6506" maxx="-2.09263" maxy="38.5449" />
111
    <BoundingBox SRS="EPSG:23030"
112
                minx="164590" miny="4.06274e+006" maxx="579080" maxy="4.26635e+006" />
113
    <Layer queryable="0" opaque="0" cascaded="0">
114
        <Name>time_idx</Name>
115
        <Title>TIME INDEX</Title>
116
        <SRS>EPSG:23030</SRS>
117
        <LatLonBoundingBox minx="-6.8471" miny="36.682" maxx="-2.16907" maxy="38.75" />
118
        <BoundingBox SRS="EPSG:23030"
119
                    minx="165338" miny="4.0662e+006" maxx="572211" maxy="4.2891e+006" />
120
        <Dimension name="time" units="ISO8601"/>
121
        <Extent name="time" nearestValue="0">2004-01-01/2004-12-1/15D</Extent>
122
    </Layer>
123
    <Layer>
124
      <Name>NDVI</Name>
125
      <Title>NDVI</Title>
126
      <Abstract>NDVI</Abstract>
127
      <Layer queryable="0" opaque="0" cascaded="0">
128
        <Name>NDVI</Name>
129
        <Title>NDVI</Title>
130
        <SRS>EPSG:23030</SRS>
131
        <LatLonBoundingBox minx="-6.8471" miny="36.682" maxx="-2.16907" maxy="38.75" />
132
        <BoundingBox SRS="EPSG:23030"
133
                    minx="165338" miny="4.0662e+006" maxx="572211" maxy="4.2891e+006" />
134
        <Dimension name="time" units="ISO8601"/>
135
        <Extent name="time" default="2004-01-01" nearestValue="0">2004-01-01/2004-12-1/15D</Extent>
136
      </Layer>
137
    </Layer>
138
  </Layer>
139
</Capability>
140
</WMT_MS_Capabilities>
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/test/java/org/gvsig/remoteclient/wms/wms_1_1_1/WMSProtocolHandler_1_1_1Test.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.remoteclient.wms.wms_1_1_1;
25

  
26
import java.io.File;
27

  
28
import junit.framework.TestCase;
29

  
30
/**
31
 * @author jaume dominguez faus - jaume.dominguez@iver.es
32
 */
33
public class WMSProtocolHandler_1_1_1Test extends TestCase {
34
	WMSProtocolHandler1_1_1 handler1, handler2, handler3, handler4;
35

  
36
	public void setUp() {
37
		System.out.println("Setting up test..");
38
		handler1 = new WMSProtocolHandler1_1_1();
39
	}
40

  
41

  
42

  
43
	public void testParsing() {
44
		long t1 = System.currentTimeMillis();
45
		handler1.parseCapabilities(new File("testdata/wms/wms.xml"));
46
		long t2 = System.currentTimeMillis();
47
		System.out.println("Test parsing done with apparently no errors in "+ (t2-(float)t1)/1000+" seconds");
48
	}
49
}
50

  
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/test/java/org/gvsig/remoteclient/wms/WMSStatusTest.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.remoteclient.wms;
25

  
26
import java.awt.geom.Rectangle2D;
27
import java.util.Vector;
28

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

  
182
    public void testEquality() {
183
    	assertTrue(st1.equals(st2));
184
    	assertFalse(st1.equals(st3)); // (distinct extent)
185
    	assertFalse(st3.equals(st4)); // (distinct online resources)
186
    }
187
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/test/java/org/gvsig/remoteclient/AllTests.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.remoteclient;
25

  
26
import junit.framework.Test;
27
import junit.framework.TestSuite;
28

  
29
import org.gvsig.remoteclient.wms.WMSStatusTest;
30
import org.gvsig.remoteclient.wms.wms_1_1_1.WMSProtocolHandler_1_1_1Test;
31

  
32
public class AllTests {
33
//
34
//	public static Test suite() {
35
//		TestSuite suite = new TestSuite("Test for org.gvsig.remoteClient");
36
//		//$JUnit-BEGIN$
37
//		suite.addTestSuite(Test.class);
38
//		
39
//		//commented until there is a way to simulate the needed servers.
40
//		//suite.addTestSuite(URLRetrieveTest.class);
41
//		suite.addTestSuite(WMSProtocolHandler_1_1_1Test.class);
42
//		suite.addTestSuite(WMSStatusTest.class);
43
//		
44
//		//$JUnit-END$
45
//		return suite;
46
//	}
47
//
48
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/main/java/org/gvsig/remoteclient/exceptions/WMSWrongSizeException.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.remoteclient.exceptions;
25

  
26
/**
27
 * La petici?n al servidor era de un tama?o equivocado.
28
 * Reconoce execepciones de algunos tipos:<br>
29
 * <li>El server http://wms.jpl.nasa.gov/wms.cgi da estos:
30
 * <pre>
31
    <?xml version='1.0' encoding="UTF-8" standalone="no" ?>
32
	<!DOCTYPE ServiceExceptionReport SYSTEM "http://www.digitalearth.gov/wmt/xml/exception_1_1_0.dtd ">
33
	<ServiceExceptionReport version="1.1.0">
34
	  <ServiceException>
35
	    Requested image is too wide, max allowed width is 4096
36
	  </ServiceException>
37
	</ServiceExceptionReport>
38
	
39
	<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
40
	<!DOCTYPE ServiceExceptionReport SYSTEM "http://www.digitalearth.gov/wmt/xml/exception_1_1_0.dtd ">
41
	<ServiceExceptionReport version="1.1.0">
42
	  <ServiceException>
43
	    Requested image is too tall, max allowed height is 4096
44
	  </ServiceException>
45
	</ServiceExceptionReport>
46
 * </pre>
47
 * <li>El server http://www.idee.es/wms/IDEE-Base/IDEE-Base da
48
 * <pre>
49
 	<ERROR Operation="GetMap Request" status="ERROR" source="Web Map Server" description="El servidor no ha podido realizar la operacion">
50
		<ERROR CODE="El tamano en pixels pedido no es valido."/>
51
		<ERROR CODE="Su valor debe ser mayor que 0 y menor que el limite de descarga: anchura = 1500, altura = 1500"/>
52
	</ERROR>
53
 * </pre>
54
 * <li>El server http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx da
55
 * <pre>
56
 	<ServiceExceptionReport version="1.1.1">
57
-
58
	<ServiceException code="InvalidFormat">
59

  
60
Par?metros erroneos:
61
prefijo = 
62
mapa =  0
63
formato = IMAGE/JPEG
64
XMin =  1.1578804698593
65
YMin =  53.5852110737936
66
XMax =  10.3
67
YMax =  53.8000038968219
68
AnchoPixels =  64
69
AltoPixels =  5023
70
Transparente = TRUE
71
Descripci?n error:
72
AltoPixels > 2000
73
</ServiceException>
74
</ServiceExceptionReport>
75
 * </pre>
76
 * 
77
 * <pre>
78
 	<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
79
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengeospatial.net/wms/1.1.1/exception_1_1_1.dtd">
80
<ServiceExceptionReport version="1.1.1">
81
<ServiceException>
82
msWMSLoadGetMapParams(): WMS server error. Image size out of range, WIDTH and HEIGHT must be between 1 and 2048 pixels.
83
</ServiceException>
84
</ServiceExceptionReport>
85

  
86
 * </pre>
87
 * 
88
 */
89
public class WMSWrongSizeException extends WMSException 
90
{	
91
	private int height = -1;
92
	private int width = -1;
93
	
94
	/**
95
	 *
96
	 */
97
	public WMSWrongSizeException() {
98
		super();
99
	}
100

  
101
	/**
102
	 * Crea WMSException.
103
	 *
104
	 * @param message
105
	 */
106
	public WMSWrongSizeException(String message) {
107
		super(message);
108
	}
109

  
110
	/**
111
	 * Crea WMSException.
112
	 *
113
	 * @param message
114
	 * @param cause
115
	 */
116
	public WMSWrongSizeException(String message, Throwable cause) {
117
		super(message, cause);
118
	}
119

  
120
	/**
121
	  * Crea WMSException.
122
	 *
123
	 * @param cause
124
	 */
125
	public WMSWrongSizeException(Throwable cause) {
126
		super(cause);
127
	}
128
	
129
	public int getWidth()
130
	{
131
		return width; 
132
	}
133
	public int getHeight()
134
	{
135
		return height;
136
	}
137
	public void setWidth(int w)
138
	{
139
		width =w;
140
	}
141
	public void setHeight(int h)
142
	{
143
		height =h;
144
	}
145
	
146
	/**
147
	 * Checks if the argument is a WrongSizeError message, in this
148
	 * case throws a WMSWrongSizeException
149
	 * @param errorMsg El mensaje de error que pasa el server.
150
	 * @throws WMSException
151
	 */
152
	public static void check(String errorMsg) throws WMSException 
153
	{
154
		//TODO:
155
		//check the errorMsg to see if it matches with one of the 
156
		// well known string error messages.
157
	}
158
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/main/java/org/gvsig/remoteclient/exceptions/WMSException.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.remoteclient.exceptions;
25

  
26
/**
27
 * Excepci?n provocada por el WMS.
28
 *
29
 * @author Vicente Caballero Navarro
30
 */
31
public class WMSException extends Exception 
32
{	
33
	private String wms_message = null;
34
	
35
	/**
36
	 *
37
	 */
38
	public WMSException() {
39
		super();
40
	}
41

  
42
	/**
43
	 * Crea WMSException.
44
	 *
45
	 * @param message
46
	 */
47
	public WMSException(String message) {
48
		super(message);
49
	}
50

  
51
	/**
52
	 * Crea WMSException.
53
	 *
54
	 * @param message
55
	 * @param cause
56
	 */
57
	public WMSException(String message, Throwable cause) {
58
		super(message, cause);
59
	}
60

  
61
	/**
62
	  * Crea WMSException.
63
	 *
64
	 * @param cause
65
	 */
66
	public WMSException(Throwable cause) {
67
		super(cause);
68
	}
69
	
70
	public String getWMSMessage()
71
	{
72
		if (wms_message == null)
73
			return "";
74
		else
75
			return wms_message;
76
	}
77
	
78
	public void setWMSMessage(String mes)
79
	{
80
		wms_message = mes;
81
	}
82
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/main/java/org/gvsig/remoteclient/wms/WMSStatus.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24

  
25
package org.gvsig.remoteclient.wms;
26

  
27
import java.awt.geom.Rectangle2D;
28
import java.util.Vector;
29

  
30
/**
31
 * Describes the status of a WMSclient, so it adds to the Remote client status
32
 * a list of layers, a list of layer styles, the extent of the map.
33
 * Provides the functionality to modify these lists.
34
 * 
35
 */
36
public class WMSStatus extends org.gvsig.remoteclient.RemoteClientStatus {
37
	// list of layer to be retrieved by the WMS
38
    private Vector      layers;
39
    // List of layer styles
40
    private Vector      styles;
41
    private Vector      dimensions;
42
    // extent required by the WMS client
43
    private Rectangle2D extent;
44
    private boolean     transparency;
45
	private String      onlineResource;
46
	private boolean     projectedCoordinates = false;
47
	private boolean     xyAxisOrder = false;
48
	
49
    public WMSStatus() {
50
    	layers = new Vector();
51
    	styles = new Vector();    	    	
52
    }
53
    
54
    // sets the list of layers required by the WMS client
55
    public void setLayerNames(Vector _layers) {        
56
        layers = _layers;
57
    } 
58

  
59
/**
60
 * <p>Retrieves the layer list required by the WMS client</p>
61
 * 
62
 * 
63
 * @return Vector, the list of layers
64
 */
65
    public Vector getLayerNames() {        
66
        return layers;
67
    } 
68

  
69
/**
70
 * <p> Adds a layer to the list of layers required by the WMS client</p>
71
 * 
72
 * 
73
 * @param _layerName, name of the layer to be added. 
74
 */
75
    public void addLayerName(String _layerName) {        
76
        layers.add(_layerName);
77
    } 
78

  
79
/**
80
 * <p>removes a layer from the layer list</p>
81
 * 
82
 * 
83
 * @param _layerName 
84
 * @return true if the layer name has been deleted from the list
85
 */
86
    public boolean removeLayerName(String _layerName) {
87
    	return layers.remove(_layerName);       
88
    } 
89

  
90
/**
91
 * <p>gets the styles list required by the WMS client</p>
92
 * 
93
 * 
94
 * @return Vector with the list of layer styles
95
 */
96
    public Vector getStyles() {        
97
        return styles;
98
    } 
99

  
100
/**
101
 * <p>sets the styles list required by the WMS client</p>
102
 * 
103
 * 
104
 * @param _styles, list to be set as the required styles.
105
 */
106
    public void setStyles(Vector _styles) {        
107
        styles = _styles;
108
    }
109
    
110
    /**
111
     * <p>sets the styles list required by the WMS client</p>
112
     * 
113
     * 
114
     * @param _styles, list to be set as the required styles.
115
     */
116
    public void setDimensions(Vector _dimensions) {        
117
        
118
        dimensions = _dimensions;
119
    } 
120

  
121
/**
122
 * <p>Adds a style name to the styles list required by the WMS client</p>
123
 * 
124
 * 
125
 * @param _name, style name to be added
126
 */
127
    public void addStyleName(String _name) {        
128
        styles.add( _name);
129
    } 
130

  
131
/**
132
 * <p>Removes a style from the list of styles required by the WMS client</p>
133
 * 
134
 * 
135
 * @param _name, style name to be removed
136
 */
137
    public boolean removeStyleName(String _name) {        
138
        return styles.remove(_name);
139
    } 
140
/**
141
 * <p>Gets the extent defined by the map</p>
142
 */
143
    public Rectangle2D getExtent() {        
144
        return extent;
145
    } 
146
/**
147
 * <p>Sets the extent defined by the map</p>
148
 */
149
    public void setExtent(Rectangle2D extent) {        
150
        this.extent = extent;
151
    } 
152
 
153
   
154

  
155
    /**
156
     * @return
157
     */
158
    public boolean getTransparency() {
159
        return transparency;
160
    }
161

  
162
    /**
163
     * @param wmsTransparency
164
     */
165
    public void setTransparency(boolean wmsTransparency) {
166
        transparency = wmsTransparency;
167
    }
168

  
169
    /**
170
     * @return
171
     */
172
    public Vector getDimensions() {
173
        return dimensions;
174
    }
175
    
176
    public boolean equals(Object obj){
177
        if (!(obj instanceof WMSStatus))
178
            return false;
179
        WMSStatus s = (WMSStatus) obj;
180
        
181
        // Compare layer names
182
        if (!(( s.getLayerNames()==null && this.getLayerNames()==null) ||
183
                s.getLayerNames().equals(this.getLayerNames())))
184
        	return false;
185
        
186
        // Compare extent
187
        if (!(( s.getExtent()==null && this.getExtent()==null) ||
188
                s.getExtent().equals(this.getExtent())))
189
        	return false;
190
        
191
        // Compare height
192
        if ( s.getHeight() != this.getHeight())
193
        	return false;
194
        	
195
        // Compare width
196
        if ( s.getWidth()  != this.getWidth())
197
        	return false;
198
        
199
        // Compare styles
200
        if (!(( s.getStyles()==null && this.getStyles()==null) ||
201
                s.getStyles().equals(this.getStyles())))
202
        	return false;
203
        
204
        // Compare dimensions
205
        if (!(( s.getDimensions()==null && this.getDimensions()==null) ||
206
                s.getDimensions().equals(this.getDimensions())))
207
        	return false;
208
        
209
        // Compare transparencies
210
        if ( s.getTransparency() != this.getTransparency())
211
        	return false;
212

  
213
		// Compare srs
214
        if (!(( s.getSrs()==null && this.getSrs()==null) || 
215
        		s.getSrs().equals(this.getSrs())))
216
        	return false;
217
        
218
        // Compare exception formats
219
        if (!(( s.getExceptionFormat()==null && this.getExceptionFormat()==null) ||
220
        		s.getExceptionFormat().equals(this.getExceptionFormat())))
221
        	return false;
222
        
223
        // Compare formats
224
        if (!(( s.getFormat()==null && this.getFormat()==null) ||
225
        		s.getFormat().equals(this.getFormat())))
226
        	return false;
227
        
228
        // Compare online resources
229
        if (!(( s.getOnlineResource()==null && this.getOnlineResource()==null) ||
230
        		s.getOnlineResource().equals(this.getOnlineResource())))
231
        	return false;
232
        
233
        return true;
234
    }
235
    
236
    public Object clone() {
237
    	WMSStatus newObject = new WMSStatus();
238
    	Vector v = this.getLayerNames();
239
    	if (v != null)
240
    		newObject.setLayerNames((Vector)v.clone());
241
    	Rectangle2D r = this.getExtent();
242
    	if (r != null)
243
    		newObject.setExtent((Rectangle2D)r.clone());
244
        newObject.setHeight(this.getHeight());
245
        newObject.setWidth(this.getWidth());
246
        v = this.getStyles();
247
        if (v != null)
248
        	newObject.setStyles((Vector)v.clone());
249
        v = this.getDimensions();
250
        if (v != null)
251
        	newObject.setDimensions((Vector)v.clone());
252
        newObject.setTransparency(this.getTransparency());
253
        newObject.setSrs(this.getSrs());
254
        newObject.setExceptionFormat(this.getExceptionFormat());
255
        newObject.setFormat(this.getFormat());
256
        newObject.setOnlineResource(this.getOnlineResource());
257
        newObject.setProjected(isProjected());
258
        newObject.setXyAxisOrder(isXyAxisOrder());
259
    	return newObject;
260
    }
261

  
262
    /**
263
     * Returns the URL that the server specified for a WMS request if any was described in
264
     * its capabilities document. 
265
     * @param operationName, a String containing the name of the operation (case-independent)
266
     * @return <b>String</b> containing the URL for this operationName or <B>null</B> if none was
267
     *                specified.
268
     */
269
	public String getOnlineResource() {
270
		return onlineResource;
271
	}
272
	
273
	/**
274
	 * Sets the string literal containing the URL of an online resource for a specific
275
	 * WMS request.
276
	 * @param operationName, String telling to which request correspond the address
277
	 * @param url, String containing the URL for the given WMS request
278
	 */
279
	public void setOnlineResource(String url) {
280
		onlineResource = url;
281
	}
282
	
283
	public boolean isProjected() {
284
		return projectedCoordinates;
285
	}
286
	
287
	public void setProjected(boolean projected) {
288
		this.projectedCoordinates = projected;
289
	}
290
	
291
	/**
292
	 * <p>Gets the behaviour of the WMS client with regards the axis order</p>
293
	 * 
294
	 * <p>Returns <code>true</code> if the WMS parser should assume that the
295
	 * order of the coordinates follows the XY axis order
296
	 * (the first coordinate corresponds to the horizontal X
297
	 * axis, while the second  coordinate corresponds to the
298
	 * vertical Y axis), regardless the protocol version and CRS in use.</p>
299
	 * 
300
	 * <p>Returns <code>false</code> if the WMS parser should decide the
301
	 * axis order based on the protocol version and the coordinate
302
	 * reference system (CRS) in use. In particular, if protocol
303
	 * version is >= 1.3.0, then the WMS parser assumes
304
	 * the axis order defined in the official EPSG registry for the
305
	 * CRS in use. For versions < 1.3.0, the XY axis order is assumed.</p>
306
	 * 
307
	 * <p>The default value is <code>false</code></p>.
308
	 * @see #setXyAxisOrder(boolean)
309
	 * @return
310
	 */
311
	public boolean isXyAxisOrder() {
312
		return this.xyAxisOrder;
313
	}
314

  
315
	/**
316
	 * <p>Sets the behaviour of the WMS client with regards the axis order.<p>
317
	 * 
318
	 * <p>If set to <code>true</code>, then the XY axis order
319
	 * is assumed for all the WMS
320
	 * protocol versions and coordinate reference systems.</p>
321
	 * 
322
	 * <p>If set to <code>false</code>
323
	 * then the WMS parser will decide the axis order based on
324
	 * the protocol version and the coordinate reference system (CRS)
325
	 * in use. In particular, if protocol
326
	 * version is >= 1.3.0, then the WMS parser assumes
327
	 * the axis order defined in the official EPSG registry for the
328
	 * CRS in use. For versions < 1.3.0, the XY axis order is assumed.</p>
329
	 * 
330
	 * 
331
	 * @param assumeXY
332
	 * @see #isXyAxisOrder()
333
	 */
334
	public void setXyAxisOrder(boolean assumeXY) {
335
		this.xyAxisOrder = assumeXY;
336
	}
337

  
338
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/main/java/org/gvsig/remoteclient/wms/WMSDimension.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24

  
25
package org.gvsig.remoteclient.wms;
26

  
27
import java.io.IOException;
28

  
29
import org.kxml2.io.KXmlParser;
30
import org.xmlpull.v1.XmlPullParserException;
31

  
32
import org.gvsig.remoteclient.utils.CapabilitiesTags;
33

  
34
/**
35
 * <p></p>
36
 * 
37
 */
38
public class WMSDimension {
39
    
40
    private String name;
41
    private String units;
42
    private String unitSymbol;
43
    /**
44
     * Declares what value would be used along this dimension if a Web
45
     * request omits a value for this dimension.
46
     */
47
    private String dimDefaultValue;
48
    /**
49
     * Indicates that the request may include multiple values or
50
     * (if it is null or zero) have to include <b>only<b/> single 
51
     * value for this dimension. 
52
     */
53
    private String multipleValues;
54
    /**
55
     * Indicates that the server will round off inexact dimension values
56
     * to the nearest valid value, or (if it is null or zero) it will not.
57
     */
58
    private String nearestValues;
59
    /**
60
     * Indicates that temporal data are normally kept current and that the
61
     * request parameter TIME <b>may</b> include the keyword 'current' 
62
     * instead of an ending value. 
63
     */
64
    private String current;
65
    /**
66
     * cotains the expression for this dimension's extent.
67
     */
68
    private String extentExpression;
69
    private String extDefaultValue;
70

  
71
    private String dimensionExpression;
72
   
73
    public String getName() {        
74
        return name;
75
    } 
76
 
77
    public String getUnits() {        
78
        return units;
79
    }
80
  
81
    public String getUnitSymbol() {        
82
        return unitSymbol;
83
    } 
84
    
85
    /**
86
     * Tells that the temporal data are normally kept current and that
87
     * the request parameter TIME may include the keyword 'current'
88
     * instead of an ending value.
89
     *
90
     * @return <b>true</b> if the server does keep the data, <b>false</b> else.
91
     */
92
    public boolean allowsCurrentTime() {
93
        return (current!=null && !current.equals("0"));
94
    }
95
    
96
    
97
    /**
98
     * Gets the value that would be used along this dimension if a Web
99
     * request omits a value for the dimension.
100
     * 
101
     * @return Returns the defaultValue.
102
     */
103
    public String getDimDefaultValue() {
104
        return dimDefaultValue;
105
    }
106
    
107
    /**
108
     * Returns the extent expression as it was written in the Capabilities 
109
     * document.
110
     * @return String
111
     */
112
    public String getExtentExpression() {
113
        return extentExpression;
114
    }
115
    /**
116
     * @return Returns the multipleValues.
117
     */
118
    public boolean allowsMultipleValues() {
119
        return (multipleValues!=null && !multipleValues.equals("0"));
120
    }   
121
    
122
    
123
    /**
124
     * @return Returns the dimensionExpression.
125
     */
126
    public String getDimensionExpression() {
127
        return dimensionExpression;
128
    }
129
    
130
    public void setDimensionExpression(String exp) {
131
        dimensionExpression = exp;
132
    }
133

  
134
    /**
135
     * @return Returns the nearestValues.
136
     */
137
    public boolean allowsNearestValues() {
138
        return (nearestValues!=null && !nearestValues.equals("0"));
139
    }
140
    
141

  
142
    /**
143
     * Parses the DIMENSION tag in the WMS capabilities, filling the WMSDimension object
144
     * and loading the data into memory to be easily accesed
145
     */
146
    public void parse(KXmlParser parser) throws IOException, XmlPullParserException{
147
        parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.DIMENSION);
148
        name                = parser.getAttributeValue("", CapabilitiesTags.DIMENSION_NAME);
149
        units               = parser.getAttributeValue("", CapabilitiesTags.DIMENSION_UNITS);
150
        unitSymbol          = parser.getAttributeValue("", CapabilitiesTags.DIMENSION_UNIT_SYMBOL);
151
        dimDefaultValue     = parser.getAttributeValue("", CapabilitiesTags.DEFAULT);
152
        dimensionExpression = parser.nextText(); 
153
    }
154
    
155
}
org.gvsig.raster.wms/tags/org.gvsig.raster.wms-2.2.101/org.gvsig.raster.wms.remoteclient/src/main/java/org/gvsig/remoteclient/wms/WMSServiceInformation.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
 
25
package org.gvsig.remoteclient.wms;
26

  
27
import java.util.Vector;
28

  
29
import org.gvsig.remoteclient.ogc.OGCClientOperation;
30
import org.gvsig.remoteclient.ogc.OGCServiceInformation;
31
import org.gvsig.remoteclient.utils.CapabilitiesTags;
32

  
33
/**
34
 * Class that represents the description of the WMS metadata.
35
 * The first part of the capabilities will return the service information
36
 * from the WMS, this class will hold this information.
37
 * 
38
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
39
 */
40
public class WMSServiceInformation extends OGCServiceInformation{
41
	/*public String map_online_resource = null;
42
    public String feature_online_resource = null;*/
43
    public String version;
44
    public String name;
45
    public String scope;
46
    public String title;
47
    public String abstr;
48
    public String keywords;
49
    public String fees;
50
    public String operationsInfo;
51
    public String personname;
52
    public String organization;
53
    public String function;
54
    public String addresstype;
55
    public String address;
56
    public String place;
57
    public String province;
58
    public String postcode;
59
    public String country;
60
    public String phone;
61
    public String fax;
62
    public String email;
63
    public Vector formats;
64
    public Vector infoformats;
65

  
66
    public WMSServiceInformation()
67
    {
68
        version = new String();
69
        name = new String();
70
        scope = new String();
71
        title = new String();
72
        abstr = new String();
73
        keywords = new String();
74
        fees = new String();
75
        operationsInfo = new String();
76
        personname = new String();
77
        organization = new String();
78
        function = new String();
79
        addresstype = new String();
80
        address = new String();
81
        place = new String();
82
        province = new String();
83
        postcode = new String();
84
        country = new String();
85
        phone = new String();
86
        fax = new String();
87
        email = new String();
88
        formats = new Vector(); 
89
        infoformats = new Vector();
90
    }
91
    
92
    public boolean isQueryable()
93
    {
94
    	if (getOnlineResource(CapabilitiesTags.GETFEATUREINFO) != null)    	
95
    		return true;
96
    	else
97
    		return false;
98
    }
99
    
100
    public boolean hasLegendGraphic()
101
    {
102
    	if (getOnlineResource(CapabilitiesTags.GETLEGENDGRAPHIC) != null) 
103
    		return true;
104
    	else
105
    		return false;
106
    }
107
    
108
    public void clear() {
109
    	version = new String();
110
        name = new String();
111
        scope = new String();
112
        title = new String();
113
        abstr = new String();
114
        keywords = new String();
115
        fees = new String();
116
        operationsInfo = new String();
117
        personname = new String();
118
        organization = new String();
119
        function = new String();
120
        addresstype = new String();
121
        address = new String();
122
        place = new String();
123
        province = new String();
124
        postcode = new String();
125
        country = new String();
126
        phone = new String();
127
        fax = new String();
128
        email = new String();
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff