Class JSONNormalizedNodeStreamWriter

  • All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable, org.opendaylight.yangtools.concepts.ExtensibleObject<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,​org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension>, org.opendaylight.yangtools.concepts.ObjectExtension<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,​org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension>, org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension

    public abstract class JSONNormalizedNodeStreamWriter
    extends Object
    implements org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter, org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension
    This implementation will create JSON output as output stream.

    Values of leaf and leaf-list are NOT translated according to codecs.

    • Field Summary

      • Fields inherited from interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter

        UNKNOWN_SIZE
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createExclusiveWriter​(JSONCodecFactory codecFactory, org.opendaylight.yangtools.yang.model.api.DataNodeContainer rootNode, URI initialNs, com.google.gson.stream.JsonWriter jsonWriter)
      Create a new stream writer, which writes to the specified output stream.
      static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createExclusiveWriter​(JSONCodecFactory codecFactory, org.opendaylight.yangtools.yang.model.api.SchemaPath path, URI initialNs, com.google.gson.stream.JsonWriter jsonWriter)
      Create a new stream writer, which writes to the specified output stream.
      static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createNestedWriter​(JSONCodecFactory codecFactory, org.opendaylight.yangtools.yang.model.api.DataNodeContainer rootNode, URI initialNs, com.google.gson.stream.JsonWriter jsonWriter)
      Create a new stream writer, which writes to the specified output stream.
      static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createNestedWriter​(JSONCodecFactory codecFactory, org.opendaylight.yangtools.yang.model.api.SchemaPath path, URI initialNs, com.google.gson.stream.JsonWriter jsonWriter)
      Create a new stream writer, which writes to the specified output stream.
      void domSourceValue​(DOMSource value)  
      void endNode()  
      void flush()  
      com.google.common.collect.ClassToInstanceMap<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension> getExtensions()  
      void scalarValue​(Object value)  
      boolean startAnydataNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, Class<?> objectModel)  
      boolean startAnyxmlNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, Class<?> objectModel)  
      void startAugmentationNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier identifier)  
      void startChoiceNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startContainerNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startLeafNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name)  
      void startLeafSet​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startLeafSetEntryNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue<?> name)  
      void startMapEntryNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates identifier, int childSizeHint)  
      void startMapNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter startMountPoint​(org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier mountId, org.opendaylight.yangtools.rfc8528.data.api.MountPointContext mountCtx)  
      void startOrderedLeafSet​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startOrderedMapNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startUnkeyedList​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startUnkeyedListItem​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      void startYangModeledAnyXmlNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)  
      • Methods inherited from interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter

        close, nextDataSchemaNode
    • Method Detail

      • createExclusiveWriter

        public static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createExclusiveWriter​(JSONCodecFactory codecFactory,
                                                                                                                              org.opendaylight.yangtools.yang.model.api.SchemaPath path,
                                                                                                                              URI initialNs,
                                                                                                                              com.google.gson.stream.JsonWriter jsonWriter)
        Create a new stream writer, which writes to the specified output stream.

        The codec factory can be reused between multiple writers.

        Returned writer is exclusive user of JsonWriter, which means it will start top-level JSON element and ends it.

        This instance of writer can be used only to emit one top level element, otherwise it will produce incorrect JSON. Closing this instance will close the writer too.

        Parameters:
        codecFactory - JSON codec factory
        path - Schema Path
        initialNs - Initial namespace
        jsonWriter - JsonWriter
        Returns:
        A stream writer instance
      • createExclusiveWriter

        public static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createExclusiveWriter​(JSONCodecFactory codecFactory,
                                                                                                                              org.opendaylight.yangtools.yang.model.api.DataNodeContainer rootNode,
                                                                                                                              URI initialNs,
                                                                                                                              com.google.gson.stream.JsonWriter jsonWriter)
        Create a new stream writer, which writes to the specified output stream.

        The codec factory can be reused between multiple writers.

        Returned writer is exclusive user of JsonWriter, which means it will start top-level JSON element and ends it.

        This instance of writer can be used only to emit one top level element, otherwise it will produce incorrect JSON. Closing this instance will close the writer too.

        Parameters:
        codecFactory - JSON codec factory
        rootNode - Root node
        initialNs - Initial namespace
        jsonWriter - JsonWriter
        Returns:
        A stream writer instance
      • createNestedWriter

        public static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createNestedWriter​(JSONCodecFactory codecFactory,
                                                                                                                           org.opendaylight.yangtools.yang.model.api.SchemaPath path,
                                                                                                                           URI initialNs,
                                                                                                                           com.google.gson.stream.JsonWriter jsonWriter)
        Create a new stream writer, which writes to the specified output stream.

        The codec factory can be reused between multiple writers.

        Returned writer can be used emit multiple top level element, but does not start / close parent JSON object, which must be done by user providing jsonWriter instance in order for JSON to be valid. Closing this instance will not close the wrapped writer; the caller must take care of that.

        Parameters:
        codecFactory - JSON codec factory
        path - Schema Path
        initialNs - Initial namespace
        jsonWriter - JsonWriter
        Returns:
        A stream writer instance
      • createNestedWriter

        public static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createNestedWriter​(JSONCodecFactory codecFactory,
                                                                                                                           org.opendaylight.yangtools.yang.model.api.DataNodeContainer rootNode,
                                                                                                                           URI initialNs,
                                                                                                                           com.google.gson.stream.JsonWriter jsonWriter)
        Create a new stream writer, which writes to the specified output stream.

        The codec factory can be reused between multiple writers.

        Returned writer can be used emit multiple top level element, but does not start / close parent JSON object, which must be done by user providing jsonWriter instance in order for JSON to be valid. Closing this instance will not close the wrapped writer; the caller must take care of that.

        Parameters:
        codecFactory - JSON codec factory
        rootNode - Root node
        initialNs - Initial namespace
        jsonWriter - JsonWriter
        Returns:
        A stream writer instance
      • getExtensions

        public com.google.common.collect.ClassToInstanceMap<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension> getExtensions()
        Specified by:
        getExtensions in interface org.opendaylight.yangtools.concepts.ExtensibleObject<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,​org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension>
      • startLeafNode

        public void startLeafNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name)
                           throws IOException
        Specified by:
        startLeafNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startLeafSet

        public final void startLeafSet​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                       int childSizeHint)
                                throws IOException
        Specified by:
        startLeafSet in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startLeafSetEntryNode

        public void startLeafSetEntryNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue<?> name)
                                   throws IOException
        Specified by:
        startLeafSetEntryNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startOrderedLeafSet

        public final void startOrderedLeafSet​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                              int childSizeHint)
                                       throws IOException
        Specified by:
        startOrderedLeafSet in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startContainerNode

        public final void startContainerNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                             int childSizeHint)
                                      throws IOException
        Specified by:
        startContainerNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startUnkeyedList

        public final void startUnkeyedList​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                           int childSizeHint)
                                    throws IOException
        Specified by:
        startUnkeyedList in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startUnkeyedListItem

        public final void startUnkeyedListItem​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                               int childSizeHint)
                                        throws IOException
        Specified by:
        startUnkeyedListItem in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startMapNode

        public final void startMapNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                       int childSizeHint)
                                throws IOException
        Specified by:
        startMapNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startMapEntryNode

        public final void startMapEntryNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates identifier,
                                            int childSizeHint)
                                     throws IOException
        Specified by:
        startMapEntryNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startOrderedMapNode

        public final void startOrderedMapNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                              int childSizeHint)
                                       throws IOException
        Specified by:
        startOrderedMapNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startChoiceNode

        public final void startChoiceNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                          int childSizeHint)
        Specified by:
        startChoiceNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • startAugmentationNode

        public final void startAugmentationNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier identifier)
        Specified by:
        startAugmentationNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • startAnydataNode

        public final boolean startAnydataNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                              Class<?> objectModel)
                                       throws IOException
        Specified by:
        startAnydataNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startMountPoint

        public final org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter startMountPoint​(org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier mountId,
                                                                                                                       org.opendaylight.yangtools.rfc8528.data.api.MountPointContext mountCtx)
                                                                                                                throws IOException
        Specified by:
        startMountPoint in interface org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension
        Throws:
        IOException
      • startAnyxmlNode

        public final boolean startAnyxmlNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                             Class<?> objectModel)
                                      throws IOException
        Specified by:
        startAnyxmlNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • startYangModeledAnyXmlNode

        public final void startYangModeledAnyXmlNode​(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name,
                                                     int childSizeHint)
                                              throws IOException
        Specified by:
        startYangModeledAnyXmlNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • endNode

        public final void endNode()
                           throws IOException
        Specified by:
        endNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • flush

        public final void flush()
                         throws IOException
        Specified by:
        flush in interface Flushable
        Specified by:
        flush in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • scalarValue

        public void scalarValue​(Object value)
                         throws IOException
        Specified by:
        scalarValue in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException
      • domSourceValue

        public void domSourceValue​(DOMSource value)
                            throws IOException
        Specified by:
        domSourceValue in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
        Throws:
        IOException