Class ImmutableNormalizedNodeStreamWriter

  • 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.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Direct Known Subclasses:
    ImmutableMetadataNormalizedNodeStreamWriter, ImmutableMountPointNormalizedNodeStreamWriter, ReusableImmutableNormalizedNodeStreamWriter

    public class ImmutableNormalizedNodeStreamWriter
    extends Object
    implements org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Implementation of NormalizedNodeStreamWriter, which constructs immutable instances of NormalizedNodes.

    This writer supports two modes of behaviour one is using from(NormalizedNodeResult) where resulting NormalizedNode will be stored in supplied result object.

    Other mode of operation is using from(NormalizedNodeContainerBuilder), where all created nodes will be written to this builder.

    This class is not final for purposes of customization, normal users should not need to subclass it.

    • 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
      void close()  
      void domSourceValue​(DOMSource value)  
      void endNode()  
      void flush()  
      static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeContainerBuilder<?,​?,​?,​?> builder)
      Creates a NormalizedNodeStreamWriter which creates instances of supplied NormalizedNodes and writes them to supplied builder as child nodes.
      static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeMetadataResult result)
      Creates a NormalizedNodeStreamWriter which creates one instance of top-level NormalizedNode (type of NormalizedNode) is determined by first start event.
      static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeResult result)
      Creates a NormalizedNodeStreamWriter which creates one instance of top-level NormalizedNode (type of NormalizedNode) is determined by first start event.
      void nextDataSchemaNode​(org.opendaylight.yangtools.yang.model.api.DataSchemaNode schema)  
      protected NormalizedNodeBuilder popBuilder()  
      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)  
      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)  
      protected void writeChild​(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,​?> child)
      Add a child not to the currently-open builder.
      • Methods inherited from interface org.opendaylight.yangtools.concepts.ExtensibleObject

        getExtensions
    • Constructor Detail

      • ImmutableNormalizedNodeStreamWriter

        protected ImmutableNormalizedNodeStreamWriter​(NormalizedNodeBuilder topLevelBuilder)
      • ImmutableNormalizedNodeStreamWriter

        protected ImmutableNormalizedNodeStreamWriter​(NormalizedNodeResult result)
    • Method Detail

      • from

        public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeContainerBuilder<?,​?,​?,​?> builder)
        Creates a NormalizedNodeStreamWriter which creates instances of supplied NormalizedNodes and writes them to supplied builder as child nodes.

        Type of supplied NormalizedNodeContainerBuilder affects, which events could be emitted in order to ensure proper construction of data.

        Parameters:
        builder - Builder to which data will be written.
        Returns:
        NormalizedNodeStreamWriter which writes data
      • from

        public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeResult result)
        Creates a NormalizedNodeStreamWriter which creates one instance of top-level NormalizedNode (type of NormalizedNode) is determined by first start event.

        Result is built when endNode() associated with that start event is emitted.

        Writer properly creates also nested NormalizedNode instances, if their are supported inside the scope of the first event.

        This method is useful for clients, which knows there will be one top-level node written, but does not know which type of NormalizedNode will be written.

        Parameters:
        result - NormalizedNodeResult object which will hold result value.
        Returns:
        NormalizedNodeStreamWriter which will write item to supplied result holder.
      • from

        public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter from​(NormalizedNodeMetadataResult result)
        Creates a NormalizedNodeStreamWriter which creates one instance of top-level NormalizedNode (type of NormalizedNode) is determined by first start event.

        Result is built when endNode() associated with that start event is emitted.

        Writer properly creates also nested NormalizedNode instances, if their are supported inside the scope of the first event.

        This method is useful for clients, which knows there will be one top-level node written, but does not know which type of NormalizedNode will be written.

        Parameters:
        result - NormalizedNodeResult object which will hold result value.
        Returns:
        NormalizedNodeStreamWriter which will write item to supplied result holder.
      • startLeafNode

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

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

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

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

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

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

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

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

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

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

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

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

        public 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 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
      • flush

        public void flush()
        Specified by:
        flush in interface Flushable
        Specified by:
        flush in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • close

        public void close()
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Specified by:
        close in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • nextDataSchemaNode

        public void nextDataSchemaNode​(org.opendaylight.yangtools.yang.model.api.DataSchemaNode schema)
        Specified by:
        nextDataSchemaNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • scalarValue

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

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

        public void endNode()
        Specified by:
        endNode in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
      • startAnydataNode

        public 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
      • writeChild

        protected final void writeChild​(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,​?> child)
        Add a child not to the currently-open builder.
        Parameters:
        child - A new child
        Throws:
        NullPointerException - if child is null
        IllegalStateException - if there is no open builder