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 | } |