Revision 53 branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/geometries/MultiLineStringTypeBinding.java
MultiLineStringTypeBinding.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; |
... | ... | |
112 | 113 |
* @throws XmlStreamException |
113 | 114 |
*/ |
114 | 115 |
public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException { |
115 |
boolean endFeature = false; |
|
116 |
int currentTag; |
|
116 |
|
|
117 |
parser.require(EventType.START_ELEMENT, GMLTags.GML_MULTILINESTRING); |
|
118 |
|
|
119 |
boolean endFeature = false; |
|
120 |
EventType currentTag; |
|
117 | 121 |
Object multiLineString = null; |
118 | 122 |
|
119 | 123 |
super.setAtributtes(parser, handler.getErrorHandler()); |
... | ... | |
121 | 125 |
multiLineString = |
122 | 126 |
handler.getContentHandler().startMultiLineString(id, srsName); |
123 | 127 |
|
124 |
QName tag = parser.getName(); |
|
128 |
QName tag = parser.getElementName();
|
|
125 | 129 |
currentTag = parser.getEventType(); |
126 | 130 |
|
127 | 131 |
while (!endFeature){ |
128 |
switch(currentTag){ |
|
129 |
case IXmlStreamReader.START_ELEMENT:
|
|
132 |
switch(currentTag.getCode()){
|
|
133 |
case EventType.START_ELEMENT_CODE:
|
|
130 | 134 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_LINESTRINGMEMBER)){ |
131 | 135 |
Object lineString = handler.getProfile().getLineStringMemberTypeBinding(). |
132 | 136 |
parse(parser, handler); |
133 | 137 |
handler.getContentHandler().addLineStringToMultiLineString(lineString, multiLineString); |
134 | 138 |
} |
135 | 139 |
break; |
136 |
case IXmlStreamReader.END_ELEMENT:
|
|
140 |
case EventType.END_ELEMENT_CODE:
|
|
137 | 141 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_MULTILINESTRING)){ |
138 | 142 |
endFeature = true; |
139 | 143 |
handler.getContentHandler().endMultiLineString(multiLineString); |
140 | 144 |
} |
141 | 145 |
break; |
142 |
case IXmlStreamReader.CHARACTERS: |
|
143 |
|
|
144 |
break; |
|
145 | 146 |
} |
146 | 147 |
if (!endFeature){ |
147 |
currentTag = parser.next(); |
|
148 |
tag = parser.getName(); |
|
148 |
currentTag = parser.nextTag();
|
|
149 |
tag = parser.getElementName();
|
|
149 | 150 |
} |
150 | 151 |
} |
151 | 152 |
return multiLineString; |
Also available in: Unified diff