Statistics
| Revision:

root / trunk / libraries / libRemoteServices / src / org / gvsig / remoteClient / wms / wms_1_1_1 / WMSLayer1_1_1.java @ 3402

History | View | Annotate | Download (4.98 KB)

1

    
2
package org.gvsig.remoteClient.wms.wms_1_1_1;
3

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

    
7
import org.gvsig.remoteClient.utils.BoundaryBox;
8
import org.gvsig.remoteClient.utils.CapabilitiesTags;
9
import org.gvsig.remoteClient.utils.Utilities;
10
import org.kxml2.io.KXmlParser;
11
import org.xmlpull.v1.XmlPullParserException;
12

    
13

    
14
/**
15
 * <p></p>
16
 * 
17
 */
18
public class WMSLayer1_1_1 extends org.gvsig.remoteClient.wms.WMSLayer {
19

    
20
        
21
        public WMSLayer1_1_1()
22
        {
23
                children = new ArrayList();
24
        }
25
/**
26
 * <p>Parses the contents of the parser(WMSCapabilities)
27
 * to extract the information about an WMSLayer</p>
28
 * 
29
 */
30
   public void parse(KXmlParser parser)
31
   throws IOException, XmlPullParserException
32
    {
33
            int currentTag;
34
            boolean end = false;
35
            String value;
36
            BoundaryBox bbox;
37
            parser.require(KXmlParser.START_TAG, null, CapabilitiesTags.LAYER);
38
                        
39
            //First of all set whether the layer is Queryable reading the attribute.
40
            value = parser.getAttributeValue("", CapabilitiesTags.QUERYABLE);
41
            if (value != null)
42
            {
43
                    if (value.compareTo("0")==0)
44
                            setQueryable(false);
45
                    else
46
                            setQueryable(true);
47
            }
48
            
49
            currentTag = parser.nextTag();
50
            
51
            while (!end) 
52
            {
53
                         switch(currentTag)
54
                         {
55
                                case KXmlParser.START_TAG:
56
                                        if (parser.getName().compareTo(CapabilitiesTags.LAYER)==0)
57
                                        {        
58
                                                WMSLayer1_1_1 lyr = new WMSLayer1_1_1();                                                
59
                                                //parser.next(); 
60
                                                lyr.parse(parser);
61
                                                lyr.setParent(this);
62
                                                getChildren().add(lyr);
63
                                        }                                                                                        
64
                                        else if (parser.getName().compareTo(CapabilitiesTags.NAME)==0)
65
                                        {                
66
                                                value = parser.nextText();
67
                                                if (value != null) setName(value);                                                
68
                                        }        
69
                                        else if (parser.getName().compareTo(CapabilitiesTags.TITLE)==0)
70
                                        {
71
                                                value = parser.nextText();
72
                                                if (value != null) setTitle(value);
73
                                        }
74
                                        else if (parser.getName().compareTo(CapabilitiesTags.ABSTRACT)==0)
75
                                        {
76
                                                value = parser.nextText();
77
                                                if (value != null) setAbstract(value);
78
                                        }
79
                                        else if (parser.getName().compareTo(CapabilitiesTags.SRS)==0)
80
                                        {
81
                                                value = parser.nextText();
82
                                                if (value != null) addSrs(value);
83
                                        }                                        
84
                                        else if (parser.getName().compareTo(CapabilitiesTags.BOUNDINGBOX)==0)
85
                                        {
86
                                                bbox = new BoundaryBox();
87
                                                value = parser.getAttributeValue("",CapabilitiesTags.SRS);
88
                                                if (value != null)
89
                                                        bbox.setSrs(value);
90
                                                value = parser.getAttributeValue("",CapabilitiesTags.MINX);
91
                                                if ((value != null) && (Utilities.isNumber(value)))
92
                                                        bbox.setXmin(Double.parseDouble(value));        
93
                                                value = parser.getAttributeValue("",CapabilitiesTags.MINY);
94
                                                if ((value != null) && (Utilities.isNumber(value)))
95
                                                        bbox.setYmin(Double.parseDouble(value));        
96
                                                value = parser.getAttributeValue("",CapabilitiesTags.MAXX);
97
                                                if ((value != null) && (Utilities.isNumber(value)))
98
                                                        bbox.setXmax(Double.parseDouble(value));        
99
                                                value = parser.getAttributeValue("",CapabilitiesTags.MAXY);
100
                                                if ((value != null) && (Utilities.isNumber(value)))
101
                                                        bbox.setYmax(Double.parseDouble(value));        
102
                                                addBBox(bbox);
103
                                        }        
104
                                        else if (parser.getName().compareTo(CapabilitiesTags.LATLONBOUNDINGBOX)==0)
105
                                        {
106
                                                bbox = new BoundaryBox();
107
                                                bbox.setSrs("4326");
108
                                                value = parser.getAttributeValue("",CapabilitiesTags.MINX);
109
                                                if ((value != null) && (Utilities.isNumber(value)))
110
                                                        bbox.setXmin(Double.parseDouble(value));        
111
                                                value = parser.getAttributeValue("",CapabilitiesTags.MINY);
112
                                                if ((value != null) && (Utilities.isNumber(value)))
113
                                                        bbox.setYmin(Double.parseDouble(value));        
114
                                                value = parser.getAttributeValue("",CapabilitiesTags.MAXX);
115
                                                if ((value != null) && (Utilities.isNumber(value)))
116
                                                        bbox.setXmax(Double.parseDouble(value));        
117
                                                value = parser.getAttributeValue("",CapabilitiesTags.MAXY);
118
                                                if ((value != null) && (Utilities.isNumber(value)))
119
                                                        bbox.setYmax(Double.parseDouble(value));        
120
                                                setLatLonBox(bbox);
121
                                        }                                                
122
                                        else if (parser.getName().compareTo(CapabilitiesTags.SCALEHINT)==0)
123
                                        {
124
                                                value = parser.getAttributeValue("",CapabilitiesTags.MIN);
125
                                                if ((value != null) && (Utilities.isNumber(value)))
126
                                                        setScaleMin(Double.parseDouble(value));
127
                                                value = parser.getAttributeValue("",CapabilitiesTags.MAX);
128
                                                if ((value != null) && (Utilities.isNumber(value)))
129
                                                        setScaleMax(Double.parseDouble(value));                                                                                                                                        
130
                                        }                                                
131
                                        else if (parser.getName().compareTo(CapabilitiesTags.STYLE)==0)
132
                                        {
133
                                                WMSStyle1_1_1 style = new WMSStyle1_1_1();
134
                                                style.parse(parser);
135
                                                if((style != null) && (style.getName() != null))
136
                                                {
137
                                                        styles.put(style.getName(),style);
138
                                                }
139
                                        }                                        
140
                                        break;
141
                                case KXmlParser.END_TAG:
142
                                        if (parser.getName().compareTo(CapabilitiesTags.LAYER) == 0)
143
                                                end = true;
144
                                        break;
145
                                case KXmlParser.TEXT:                                        
146
                                        break;
147
                         }
148
                         //if (!end)
149
                         //{
150
                                 currentTag = parser.next();
151
                         //}
152
            }
153
            //parser.require(KXmlParser.END_TAG, null, CapabilitiesTags.LAYER);
154
    }      
155
 }