in impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java [70:118]
protected void serializeNode(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
// TODO We get the StAXWriter at this point and uses it hereafter assuming that this is the only entry point to this class.
// If there can be other classes calling methodes of this we might need to change methode signatures to OMOutputer
while (reader.hasNext()) {
int event = reader.next();
if (event == START_ELEMENT) {
if(options == null){
serializeElement(reader, writer);
}
else{
serializeElementWithOptions(reader, writer);
}
depth++;
} else if (event == ATTRIBUTE) {
serializeAttributes(reader, writer);
} else if (event == CHARACTERS) {
serializeText(reader, writer);
} else if (event == COMMENT) {
serializeComment(reader, writer);
} else if (event == CDATA) {
serializeCData(reader, writer);
} else if (event == END_ELEMENT) {
if(options == null){
serializeEndElement(writer);
}else{
serializeEndElementWithOptions(writer);
}
depth--;
} else if (event == START_DOCUMENT) {
depth++; // if a start document is found then increment the depth
} else if (event == END_DOCUMENT) {
if (depth != 0)
depth--; // for the end document - reduce the depth
try {
if(options == null){
serializeEndElement(writer);
}
else{
serializeEndElementWithOptions(writer);
}
} catch (Exception e) {
// TODO: log exceptions
}
}
if (depth == 0) {
break;
}
}
}