Revision 53 branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/geometries/LinearRingTypeBinding.java
LinearRingTypeBinding.java | ||
---|---|---|
10 | 10 |
import org.gvsig.gpe.gml.utils.GMLTags; |
11 | 11 |
import org.gvsig.gpe.parser.ICoordinateIterator; |
12 | 12 |
import org.gvsig.gpe.warnings.PolygonNotClosedWarning; |
13 |
import org.gvsig.gpe.xml.stream.EventType; |
|
13 | 14 |
import org.gvsig.gpe.xml.stream.IXmlStreamReader; |
14 | 15 |
import org.gvsig.gpe.xml.stream.XmlStreamException; |
15 | 16 |
import org.gvsig.gpe.xml.utils.CompareUtils; |
... | ... | |
101 | 102 |
* @throws IOException |
102 | 103 |
*/ |
103 | 104 |
public Object parse(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException{ |
105 |
|
|
106 |
parser.require(EventType.START_ELEMENT, GMLTags.GML_LINEARRING); |
|
107 |
|
|
104 | 108 |
Object linearRing = null; |
105 | 109 |
|
106 | 110 |
super.setAtributtes(parser, handler.getErrorHandler()); |
... | ... | |
129 | 133 |
*/ |
130 | 134 |
public ICoordinateIterator parseCoordinates(IXmlStreamReader parser,GPEDefaultGmlParser handler) throws XmlStreamException, IOException { |
131 | 135 |
boolean endFeature = false; |
132 |
int currentTag;
|
|
136 |
EventType currentTag;
|
|
133 | 137 |
|
134 |
QName tag = parser.getName(); |
|
138 |
QName tag = parser.getElementName();
|
|
135 | 139 |
currentTag = parser.getEventType(); |
136 | 140 |
|
137 | 141 |
while (!endFeature){ |
138 |
switch(currentTag){ |
|
139 |
case IXmlStreamReader.START_ELEMENT:
|
|
142 |
switch(currentTag.getCode()){
|
|
143 |
case EventType.START_ELEMENT_CODE:
|
|
140 | 144 |
ICoordinateIterator iterator = parseTag_(parser, handler, tag); |
141 | 145 |
if (iterator != null){ |
142 | 146 |
return iterator; |
143 | 147 |
} |
144 |
case IXmlStreamReader.END_ELEMENT:
|
|
148 |
case EventType.END_ELEMENT_CODE:
|
|
145 | 149 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_LINEARRING)){ |
146 | 150 |
|
147 | 151 |
} |
148 | 152 |
break; |
149 |
case IXmlStreamReader.CHARACTERS: |
|
150 |
|
|
151 |
break; |
|
152 | 153 |
} |
153 | 154 |
if (!endFeature){ |
154 |
currentTag = parser.next(); |
|
155 |
tag = parser.getName(); |
|
155 |
currentTag = parser.nextTag();
|
|
156 |
tag = parser.getElementName();
|
|
156 | 157 |
} |
157 | 158 |
} |
158 | 159 |
//The first and the last coordinates has to be the same |
Also available in: Unified diff