Cleanup NormalizedAnydata
[yangtools.git] / yang / yang-data-codec-xml / src / main / java / org / opendaylight / yangtools / yang / data / codec / xml / StreamWriterFacade.java
index b2ec393abde1e5b1b08b6fd5e6099948a0e83f7f..30cec9ca08ad3834a9518ced3703eb9856608208 100644 (file)
@@ -21,11 +21,8 @@ import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
 import org.opendaylight.yangtools.yang.data.util.NormalizedAnydata;
-import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.data.util.SingleChildDataNodeContainer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -325,20 +322,9 @@ final class StreamWriterFacade extends ValueWriter {
     }
 
     void emitNormalizedAnydata(final NormalizedAnydata anydata) throws XMLStreamException {
-        // TODO: this is rather ugly
-        final DataSchemaNode root = anydata.getContextTree().getRoot().getDataSchemaNode();
-        if (!(root instanceof SchemaContext)) {
-            throw new XMLStreamException("Unexpected root context " + root);
-        }
-
-        final DataSchemaNode node = anydata.getContextNode().getDataSchemaNode();
-        if (!(node instanceof DataNodeContainer)) {
-            throw new XMLStreamException("Unexpected node context " + node);
-        }
-
         try {
-            NormalizedNodeWriter.forStreamWriter(XMLStreamNormalizedNodeStreamWriter.create(writer,
-                (SchemaContext) root, (DataNodeContainer) node), false).write(anydata.getData()).flush();
+            anydata.writeTo(XMLStreamNormalizedNodeStreamWriter.create(writer, anydata.getSchemaContext(),
+                new SingleChildDataNodeContainer(anydata.getContextNode())));
         } catch (IOException e) {
             throw new XMLStreamException("Failed to emit anydata " + anydata, e);
         }