in axis-rt-core/src/main/java/org/apache/axis/message/SAX2EventRecorder.java [138:228]
public void replay(int start, int stop, ContentHandler handler) throws SAXException {
// Special case : play the whole thing for [0, -1]
if ((start == 0) && (stop == -1)) {
replay(handler);
return;
}
if (stop + 1 > events.getLength() ||
stop < start) {
return; // should throw an error here
}
LexicalHandler lexicalHandler = null;
if (handler instanceof LexicalHandler) {
lexicalHandler = (LexicalHandler) handler;
}
for (int n = start; n <= stop; n++) {
Object event = events.get(n,0);
if (event == STATE_START_ELEMENT) {
handler.startElement((String)events.get(n,1),
(String)events.get(n,2),
(String)events.get(n,3),
(org.xml.sax.Attributes)events.get(n,4));
} else if (event == STATE_END_ELEMENT) {
handler.endElement((String)events.get(n,1),
(String)events.get(n,2),
(String)events.get(n,3));
} else if (event == STATE_CHARACTERS) {
char[] data = (char[])events.get(n,1);
handler.characters(data, 0, data.length);
} else if (event == STATE_IGNORABLE_WHITESPACE) {
char[] data = (char[])events.get(n,1);
handler.ignorableWhitespace(data, 0, data.length);
} else if (event == STATE_PROCESSING_INSTRUCTION) {
handler.processingInstruction((String)events.get(n,1),
(String)events.get(n,2));
} else if (event == STATE_SKIPPED_ENTITY) {
handler.skippedEntity((String)events.get(n,1));
} else if (event == STATE_START_DOCUMENT) {
handler.startDocument();
} else if (event == STATE_END_DOCUMENT) {
handler.endDocument();
} else if (event == STATE_START_PREFIX_MAPPING) {
handler.startPrefixMapping((String)events.get(n, 1),
(String)events.get(n, 2));
} else if (event == STATE_END_PREFIX_MAPPING) {
handler.endPrefixMapping((String)events.get(n, 1));
} else if (event == STATE_START_DTD && lexicalHandler != null) {
lexicalHandler.startDTD((String)events.get(n,1),
(String)events.get(n,2),
(String)events.get(n,3));
} else if (event == STATE_END_DTD && lexicalHandler != null) {
lexicalHandler.endDTD();
} else if (event == STATE_START_ENTITY && lexicalHandler != null) {
lexicalHandler.startEntity((String)events.get(n,1));
} else if (event == STATE_END_ENTITY && lexicalHandler != null) {
lexicalHandler.endEntity((String)events.get(n,1));
} else if (event == STATE_START_CDATA && lexicalHandler != null) {
lexicalHandler.startCDATA();
} else if (event == STATE_END_CDATA && lexicalHandler != null) {
lexicalHandler.endCDATA();
} else if (event == STATE_COMMENT && lexicalHandler != null) {
char[] data = (char[])events.get(n,1);
lexicalHandler.comment(data, 0, data.length);
} else if (event == STATE_NEWELEMENT) {
if (handler instanceof DeserializationContext) {
DeserializationContext context =
(DeserializationContext)handler;
context.setCurElement(
(MessageElement)(events.get(n,1)));
}
}
}
}