in src/main/java/org/apache/commons/scxml2/io/SCXMLWriter.java [985:1031]
private static void writeParsedValue(final XMLStreamWriter writer, final ParsedValue parsedValue)
throws XMLStreamException {
try {
if (parsedValue != null) {
switch (parsedValue.getType()) {
case TEXT:
final TextValue textValue = (TextValue)parsedValue;
if (textValue.isCDATA()) {
writer.writeCData(textValue.getValue());
} else {
writer.writeCharacters(textValue.getValue());
}
break;
case JSON:
final String value = ContentParser.DEFAULT_PARSER.toJson(parsedValue.getValue());
if (((JsonValue) parsedValue).isCDATA()) {
writer.writeCData(value);
} else {
writer.writeCharacters(value);
}
break;
case NODE:
if (XFORMER == null) {
writer.writeComment("element body was not serialized");
} else {
writeNode(writer, ((NodeValue)parsedValue).getValue());
}
break;
case NODE_LIST:
final List<Node> nodeList = ((NodeListValue)parsedValue).getValue();
if (!nodeList.isEmpty() && XFORMER == null) {
writer.writeComment("element body was not serialized");
} else {
for (final Node node : nodeList) {
writeNode(writer, node);
}
}
break;
case NODE_TEXT:
writeNode(writer, ContentParser.DEFAULT_PARSER.parseXml((String)parsedValue.getValue()));
break;
}
}
} catch (final IOException e) {
throw new XMLStreamException(e);
}
}