in testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/StAXTraverser.java [57:103]
public Event next() throws TraverserException {
try {
int event;
if (depth == 0) {
if (atStart) {
atStart = false;
event = XMLStreamReader.START_ELEMENT;
} else {
event = XMLStreamReader.END_DOCUMENT;
}
} else {
event = reader.hasNext() ? reader.next() : XMLStreamReader.END_DOCUMENT;
}
switch (event) {
case XMLStreamReader.DTD:
return Event.DOCUMENT_TYPE;
case XMLStreamReader.START_ELEMENT:
if (depth != -1) {
depth++;
}
return Event.START_ELEMENT;
case XMLStreamReader.END_ELEMENT:
if (depth != -1) {
depth--;
}
return Event.END_ELEMENT;
case XMLStreamReader.CHARACTERS:
return Event.TEXT;
case XMLStreamReader.SPACE:
return Event.WHITESPACE;
case XMLStreamReader.ENTITY_REFERENCE:
return Event.ENTITY_REFERENCE;
case XMLStreamReader.COMMENT:
return Event.COMMENT;
case XMLStreamReader.CDATA:
return Event.CDATA_SECTION;
case XMLStreamReader.PROCESSING_INSTRUCTION:
return Event.PROCESSING_INSTRUCTION;
case XMLStreamReader.END_DOCUMENT:
return null;
default:
throw new IllegalStateException();
}
} catch (XMLStreamException ex) {
throw new TraverserException(ex);
}
}