Revision 53 branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/geometries/BoundedByTypeBinding.java
BoundedByTypeBinding.java | ||
---|---|---|
6 | 6 |
|
7 | 7 |
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser; |
8 | 8 |
import org.gvsig.gpe.gml.utils.GMLTags; |
9 |
import org.gvsig.gpe.xml.stream.EventType; |
|
9 | 10 |
import org.gvsig.gpe.xml.stream.IXmlStreamReader; |
10 | 11 |
import org.gvsig.gpe.xml.stream.XmlStreamException; |
11 | 12 |
import org.gvsig.gpe.xml.utils.CompareUtils; |
... | ... | |
93 | 94 |
* @throws IOException |
94 | 95 |
*/ |
95 | 96 |
public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException { |
97 |
|
|
98 |
parser.require(EventType.START_ELEMENT, GMLTags.GML_BOUNDEDBY); |
|
99 |
|
|
96 | 100 |
boolean endFeature = false; |
97 |
int currentTag;
|
|
101 |
EventType currentTag;
|
|
98 | 102 |
Object bbox = null; |
99 |
|
|
100 |
QName tag = parser.getName(); |
|
103 |
|
|
104 |
parser.nextTag(); |
|
105 |
|
|
106 |
QName tag = parser.getElementName(); |
|
101 | 107 |
currentTag = parser.getEventType(); |
102 | 108 |
|
103 |
while (!endFeature){ |
|
104 |
switch(currentTag){ |
|
105 |
case IXmlStreamReader.START_ELEMENT: |
|
106 |
bbox = parseTag(parser, handler, tag); |
|
107 |
break; |
|
108 |
case IXmlStreamReader.END_ELEMENT: |
|
109 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_BOUNDEDBY)){ |
|
110 |
endFeature = true; |
|
111 |
} |
|
112 |
break; |
|
113 |
case IXmlStreamReader.CHARACTERS: |
|
114 |
|
|
115 |
break; |
|
116 |
} |
|
117 |
if (!endFeature){ |
|
118 |
currentTag = parser.next(); |
|
119 |
tag = parser.getName(); |
|
120 |
} |
|
121 |
} |
|
109 |
while (!endFeature) { |
|
110 |
switch (currentTag.getCode()) { |
|
111 |
case EventType.START_ELEMENT_CODE: |
|
112 |
bbox = parseTag(parser, handler, tag); |
|
113 |
parser.require(EventType.END_ELEMENT, tag); |
|
114 |
break; |
|
115 |
case EventType.END_ELEMENT_CODE: |
|
116 |
if (CompareUtils.compareWithNamespace(tag, GMLTags.GML_BOUNDEDBY)) { |
|
117 |
endFeature = true; |
|
118 |
} |
|
119 |
break; |
|
120 |
} |
|
121 |
if (!endFeature) { |
|
122 |
currentTag = parser.nextTag(); |
|
123 |
tag = parser.getElementName(); |
|
124 |
} |
|
125 |
} |
|
126 |
parser.require(EventType.END_ELEMENT, GMLTags.GML_BOUNDEDBY); |
|
122 | 127 |
return bbox; |
123 | 128 |
} |
124 | 129 |
|
Also available in: Unified diff