Statistics
| Revision:

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

History | View | Annotate | Download (1.5 KB)

1
package org.gvsig.gpe.gml.parser.sfp0.geometries;
2

    
3
import java.io.IOException;
4
import java.util.ArrayList;
5

    
6
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
7
import org.gvsig.gpe.gml.utils.CompareUtils;
8
import org.gvsig.gpe.gml.utils.CoordsContainer;
9
import org.gvsig.gpe.gml.utils.GMLTags;
10
import org.kxml2.io.KXmlParser;
11
import org.xmlpull.v1.XmlPullParser;
12
import org.xmlpull.v1.XmlPullParserException;
13

    
14
public class SegmentsTypeBinding{
15
        
16
        public ArrayList parse(XmlPullParser parser,GPEDefaultGmlParser handler) throws XmlPullParserException, IOException {
17
                boolean endFeature = false;
18
                int currentTag;
19
                CoordsContainer coordsContainer = null;
20
                ArrayList segments = new ArrayList();                
21

    
22
                String tag = parser.getName();
23
                currentTag = parser.getEventType();
24

    
25
                while (!endFeature){
26
                        switch(currentTag){
27
                        case KXmlParser.START_TAG:
28
                                if (CompareUtils.compareWithOutNamespace(tag,GMLTags.GML_LINESTRINGSEGMENT)){
29
                                        segments.add(handler.getProfile().getLinestringSegmentTypeBinding().
30
                                        parse(parser, handler));
31
                                }else if (CompareUtils.compareWithOutNamespace(tag,GMLTags.GML_LINESTRING)){
32
                                        segments.add(handler.getProfile().getLineStringTypeBinding().
33
                                        parse(parser, handler));
34
                                }
35
                                break;
36
                        case KXmlParser.END_TAG:
37
                                if (CompareUtils.compareWithOutNamespace(tag,GMLTags.GML_SEGMENTS)){        
38
                                        endFeature = true;
39
                                }
40
                                break;
41
                        case KXmlParser.TEXT:                                        
42

    
43
                                break;
44
                        }
45
                        if (!endFeature){                                        
46
                                currentTag = parser.next();
47
                                tag = parser.getName();
48
                        }
49
                }                
50
                return segments;        
51
        }
52
}