Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libRemoteServices / src / org / gvsig / remoteClient / wms / wms_1_1_1 / WMSLayer1_1_1.java @ 3380

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