in src/main/java/org/apache/servicemix/jbi/jaxp/DOMStreamReader.java [106:143]
public int next() throws XMLStreamException {
if (frame.ended) {
frames.pop();
if (!frames.empty()) {
frame = frames.peek();
} else {
currentEvent = END_DOCUMENT;
return currentEvent;
}
}
if (!frame.started) {
frame.started = true;
currentEvent = START_ELEMENT;
} else if (frame.currentAttribute < getAttributeCount() - 1) {
frame.currentAttribute++;
currentEvent = ATTRIBUTE;
} else if (frame.currentChild < getChildCount() - 1) {
frame.currentChild++;
currentEvent = moveToChild(frame.currentChild);
if (currentEvent == START_ELEMENT) {
ElementFrame newFrame = getChildFrame(frame.currentChild);
newFrame.started = true;
frame = newFrame;
frames.push(this.frame);
currentEvent = START_ELEMENT;
newFrame(newFrame);
}
} else {
frame.ended = true;
currentEvent = END_ELEMENT;
endElement();
}
return currentEvent;
}