Revision 53 branches/v1_9_0/libGPE-GML/src/org/gvsig/gpe/gml/parser/v2/coordinates/CoordTypeIterator.java
CoordTypeIterator.java | ||
---|---|---|
7 | 7 |
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser; |
8 | 8 |
import org.gvsig.gpe.gml.parser.v2.geometries.DoubleTypeBinding; |
9 | 9 |
import org.gvsig.gpe.gml.utils.GMLTags; |
10 |
import org.gvsig.gpe.xml.stream.EventType; |
|
10 | 11 |
import org.gvsig.gpe.xml.stream.IXmlStreamReader; |
11 | 12 |
import org.gvsig.gpe.xml.stream.XmlStreamException; |
12 | 13 |
import org.gvsig.gpe.xml.utils.CompareUtils; |
... | ... | |
112 | 113 |
* @see org.gvsig.gpe.parser.ICoordinateIterator#hasNext() |
113 | 114 |
*/ |
114 | 115 |
public boolean hasNext() throws IOException { |
115 |
QName tag = parser.getName(); |
|
116 |
QName tag = parser.getElementName();
|
|
116 | 117 |
|
117 | 118 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_COORD)){ |
118 | 119 |
return true; |
... | ... | |
127 | 128 |
*/ |
128 | 129 |
public void next(double[] buffer) throws IOException { |
129 | 130 |
boolean endCoord = false; |
130 |
int currentTag;
|
|
131 |
EventType currentTag;
|
|
131 | 132 |
|
132 |
QName tag = parser.getName(); |
|
133 |
QName tag = parser.getElementName();
|
|
133 | 134 |
currentTag = parser.getEventType(); |
134 | 135 |
|
135 | 136 |
while (!endCoord){ |
136 |
switch(currentTag){ |
|
137 |
case IXmlStreamReader.START_ELEMENT: |
|
137 |
switch(currentTag.getCode()){ |
|
138 |
case EventType.START_ELEMENT_CODE: |
|
139 |
tag = parser.getElementName(); |
|
138 | 140 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_X)){ |
139 | 141 |
parser.next(); |
140 | 142 |
buffer[0] = DoubleTypeBinding.parse(parser.getText(),COORDINATES_DECIMAL); |
... | ... | |
146 | 148 |
buffer[2] = DoubleTypeBinding.parse(parser.getText(),COORDINATES_DECIMAL); |
147 | 149 |
} |
148 | 150 |
break; |
149 |
case IXmlStreamReader.END_ELEMENT: |
|
151 |
case EventType.END_ELEMENT_CODE: |
|
152 |
tag = parser.getElementName(); |
|
150 | 153 |
if (CompareUtils.compareWithNamespace(tag,GMLTags.GML_COORD)){ |
151 | 154 |
//Advance until netx XML tag |
152 |
parser.nextTag(); |
|
153 | 155 |
endCoord = true; |
154 | 156 |
} |
155 | 157 |
break; |
156 |
case IXmlStreamReader.CHARACTERS: |
|
157 |
|
|
158 |
break; |
|
159 | 158 |
} |
160 | 159 |
if (!endCoord){ |
161 | 160 |
currentTag = parser.next(); |
162 |
tag = parser.getName(); |
|
163 | 161 |
} |
164 | 162 |
} |
165 | 163 |
} |
Also available in: Unified diff