private static void writeParsedValue()

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);
        }
    }