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 / symbol / PolygonSymbolElement.java @ 40799

History | View | Annotate | Download (2.59 KB)

1 40794 jldominguez
package org.gvsig.sldsupport.impl.sld1_0_0.parsing.symbol;
2
3
import java.io.IOException;
4
5
import org.gvsig.sldsupport.exception.SLDReadException;
6 40795 jldominguez
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.DisplacementElement;
7
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.FillElement;
8 40799 jldominguez
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.GeometryElement;
9 40795 jldominguez
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.StrokeElement;
10 40794 jldominguez
import org.gvsig.sldsupport.impl.util.SLDUtils;
11
import org.gvsig.sldsupport.sld.SLDTags;
12 40795 jldominguez
import org.gvsig.sldsupport.sld.graphic.SLDDisplacement;
13
import org.gvsig.sldsupport.sld.symbol.SLDPolygonSymbol;
14
import org.gvsig.sldsupport.sld.symbol.misc.SLDFill;
15 40799 jldominguez
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
16 40795 jldominguez
import org.gvsig.sldsupport.sld.symbol.misc.SLDStroke;
17 40794 jldominguez
import org.kxml2.io.KXmlParser;
18
import org.xmlpull.v1.XmlPullParser;
19
import org.xmlpull.v1.XmlPullParserException;
20
21
/**
22
 * Used to parse a parameter value inside another entity
23
 *
24
 * @author jldominguez
25
 *
26
 */
27
public class PolygonSymbolElement {
28
29 40795 jldominguez
        public static SLDPolygonSymbol parse(XmlPullParser parser , String version)
30 40794 jldominguez
                        throws XmlPullParserException, IOException, SLDReadException {
31
32
                String ent_name = parser.getName();
33 40795 jldominguez
                SLDPolygonSymbol resp = new SLDPolygonSymbol();
34
                resp.setVersion(version);
35
                int tag = 0;
36 40794 jldominguez
37 40796 jldominguez
                tag = parser.nextTag();
38 40794 jldominguez
                String name = parser.getName();
39 40795 jldominguez
                String txt = null;
40 40794 jldominguez
                while (!(SLDUtils.isStr(name, ent_name) && tag == KXmlParser.END_TAG)) {
41 40795 jldominguez
42
                        switch (tag) {
43
                        case KXmlParser.START_TAG:
44
                                if (SLDUtils.isStr(name, SLDTags.GEOMETRY)) {
45 40799 jldominguez
                                        SLDGeometry geom = GeometryElement.parse(parser, version);
46
                                        resp.setGeometryPropertyName(geom.getPropertyName());
47 40795 jldominguez
                                        break;
48
                                }
49
                                if (SLDUtils.isStr(name, SLDTags.FILL)) {
50
                                        SLDFill fil = FillElement.parse(parser, version);
51
                                        resp.setFill(fil);
52
                                        break;
53
                                }
54
                                if (SLDUtils.isStr(name, SLDTags.STROKE)) {
55
                                        SLDStroke st = StrokeElement.parse(parser, version);
56
                                        resp.setStroke(st);
57
                                        break;
58
                                }
59
                                if (SLDUtils.isStr(name, SLDTags.DISPLACEMENT)) {
60
                                        resp.setVersion(SLDUtils.VERSION_1_1_0);
61
                                        SLDDisplacement disp = DisplacementElement.parse(parser, version);
62
                                        resp.setDisplacement(disp);
63
                                        break;
64
                                }
65 40799 jldominguez
                                /*
66
                                 * Any other entity causes parsing error
67
                                 */
68
                                throw new SLDReadException(
69
                                                "Bad SLD file. Unexpected entity in polygon symbol: " + name);
70 40795 jldominguez
                        case KXmlParser.END_TAG:
71
                                break;
72
                        case KXmlParser.TEXT:
73
                                break;
74
                        }
75 40794 jldominguez
                        tag = parser.getEventType();
76
                        name = parser.getName();
77
                }
78 40795 jldominguez
79 40796 jldominguez
                parser.nextTag();
80 40794 jldominguez
                return resp;
81
        }
82
}