Statistics
| Revision:

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

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