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