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
package org.gvsig.gpe.gml.parser.sfp0.geometries;
2

    
3
import java.io.IOException;
4

    
5
import javax.xml.namespace.QName;
6

    
7
import org.gvsig.gpe.gml.parser.GPEGml2_1_2_Parser;
8
import org.gvsig.gpe.gml.utils.GMLTags;
9
import org.gvsig.gpe.xml.stream.IXmlStreamReader;
10
import org.gvsig.gpe.xml.stream.XmlStreamException;
11
import org.gvsig.gpe.xml.utils.CompareUtils;
12

    
13
public class CurveMemberTypeBinding {
14

    
15
                public static Object parse(IXmlStreamReader parser,GPEGml2_1_2_Parser handler) throws XmlStreamException, IOException {
16
                        boolean endFeature = false;
17
                        int currentTag;
18
                        Object curve = null;                
19
                        
20
                        QName tag = parser.getName();
21
                        currentTag = parser.getEventType();
22

    
23
                        while (!endFeature){
24
                                switch(currentTag){
25
                                case IXmlStreamReader.START_ELEMENT:
26
                                                if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_CURVE)){
27
                                                        curve = handler.getProfile().getCurveTypeBinding().
28
                                                        parse(parser, handler);
29
                                                }else if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_LINESTRING)){
30
                                                        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
                                        case IXmlStreamReader.END_ELEMENT:
37
                                                if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_CURVEMEMBER)){                                                
38
                                                        endFeature = true;                                                
39
                                                }
40
                                                break;
41
                                        case IXmlStreamReader.CHARACTERS:                        
42
                                                
43
                                                break;
44
                                        }
45
                                        if (!endFeature){                                        
46
                                                currentTag = parser.next();
47
                                                tag = parser.getName();
48
                                        }
49
                                }                        
50
                        return curve;        
51
                }
52
}