Statistics
| Revision:

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

History | View | Annotate | Download (5.01 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
import com.iver.cit.gvsig.fmap.operations.strategies.BoundingBoxVisitor;
14

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

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