Statistics
| Revision:

svn-gvsig-desktop / branches / v02_desarrollo / libraries / sld / temp / org.gvsig.sldsupport.lib.impl / src / main / java / org / gvsig / sldsupport / impl / sld1_0_0 / parsing / GeometryElement.java @ 40799

History | View | Annotate | Download (1.63 KB)

1
package org.gvsig.sldsupport.impl.sld1_0_0.parsing;
2

    
3
import java.io.IOException;
4

    
5
import org.gvsig.sldsupport.exception.SLDReadException;
6
import org.gvsig.sldsupport.impl.util.SLDUtils;
7
import org.gvsig.sldsupport.sld.SLDTags;
8
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDPropertyName;
9
import org.gvsig.sldsupport.sld.graphic.SLDGraphic;
10
import org.gvsig.sldsupport.sld.graphic.SLDLegendGraphic;
11
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
12
import org.kxml2.io.KXmlParser;
13
import org.xmlpull.v1.XmlPullParser;
14
import org.xmlpull.v1.XmlPullParserException;
15

    
16
public class GeometryElement {
17
        
18
        public static SLDGeometry parse(XmlPullParser parser , String version)
19
                        throws XmlPullParserException, IOException, SLDReadException {
20
                
21
                parser.require(KXmlParser.START_TAG, null, SLDTags.GEOMETRY);
22
                int tag = 0;
23
                
24
                SLDGeometry resp = new SLDGeometry();
25
                
26
                tag = parser.nextTag();
27
                String name = parser.getName();
28
                String txt = null;
29
                while (!(SLDUtils.isStr(name, SLDTags.GEOMETRY)
30
                                && tag == KXmlParser.END_TAG)) {
31
                        
32
                        switch (tag) {
33
                        case KXmlParser.START_TAG:
34
                                if (SLDUtils.isStr(name, SLDTags.PROPERTY_NAME)) {
35
                                        txt = parser.nextText();
36
                                        resp.setPropertyName(txt);
37
                                        parser.nextTag();
38
                                        break;
39
                                }
40
                                /*
41
                                 * Any other entity causes parsing error
42
                                 */
43
                                throw new SLDReadException(
44
                                                "Bad SLD file. Unexpected entity in geometry element: " + name);
45
                        case KXmlParser.END_TAG:
46
                                break;
47
                        case KXmlParser.TEXT:
48
                                break;
49
                        }
50
                        tag = parser.getEventType();
51
                        name = parser.getName();
52
                }
53

    
54
                parser.nextTag();
55
                return resp;
56
        }
57
}