Statistics
| Revision:

root / trunk / libraries / libGPE-GML / src / org / gvsig / gpe / gml / parser / sfp0 / geometries / CurveMemberTypeBinding.java @ 21951

History | View | Annotate | Download (1.6 KB)

1 18286 jpiera
package org.gvsig.gpe.gml.parser.sfp0.geometries;
2
3
import java.io.IOException;
4
5 19952 jpiera
import javax.xml.namespace.QName;
6
7 21951 jpiera
import org.gvsig.gpe.gml.parser.GPEGml2_1_2_Parser;
8 19366 jpiera
import org.gvsig.gpe.gml.utils.GMLTags;
9 19682 jpiera
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
10 19592 groldan
import org.gvsig.gpe.xml.stream.XmlStreamException;
11 19682 jpiera
import org.gvsig.gpe.xml.utils.CompareUtils;
12 18286 jpiera
13
public class CurveMemberTypeBinding {
14
15 21951 jpiera
                public static Object parse(IXmlStreamReader parser,GPEGml2_1_2_Parser handler) throws XmlStreamException, IOException {
16 18286 jpiera
                        boolean endFeature = false;
17
                        int currentTag;
18
                        Object curve = null;
19
20 19952 jpiera
                        QName tag = parser.getName();
21 18286 jpiera
                        currentTag = parser.getEventType();
22
23
                        while (!endFeature){
24
                                switch(currentTag){
25 19710 groldan
                                case IXmlStreamReader.START_ELEMENT:
26 19952 jpiera
                                                if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_CURVE)){
27 18286 jpiera
                                                        curve = handler.getProfile().getCurveTypeBinding().
28
                                                        parse(parser, handler);
29 19952 jpiera
                                                }else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_LINESTRING)){
30 18286 jpiera
                                                        curve = handler.getContentHandler().startCurve(null, null);
31
                                                        Object lineString = handler.getProfile().getLineStringTypeBinding().
32
                                                        parse(parser, handler);
33
                                                        handler.getContentHandler().addSegmentToCurve(lineString, curve);
34
                                                }
35
                                                break;
36 19710 groldan
                                        case IXmlStreamReader.END_ELEMENT:
37 19952 jpiera
                                                if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_CURVEMEMBER)){
38 18286 jpiera
                                                        endFeature = true;
39
                                                }
40
                                                break;
41 19710 groldan
                                        case IXmlStreamReader.CHARACTERS:
42 18286 jpiera
43
                                                break;
44
                                        }
45
                                        if (!endFeature){
46
                                                currentTag = parser.next();
47
                                                tag = parser.getName();
48
                                        }
49
                                }
50
                        return curve;
51
                }
52
}