Class XMLStreamNormalizedNodeStreamWriter<T>

java.lang.Object
org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter<T>
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, ExtensibleObject<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.Extension>, ObjectExtension<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.Extension>, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.Extension, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension

public abstract sealed class XMLStreamNormalizedNodeStreamWriter<T> extends Object implements org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension
A NormalizedNodeStreamWriter which translates the events into an XMLStreamWriter, resulting in an RFC6020 XML encoding. There are 2 versions of this class, one that takes a SchemaContext and encodes values appropriately according to the YANG schema. The other is schema-less and merely outputs values using toString. The latter is intended for debugging where doesn't have a SchemaContext available and isn't meant for production use.

Due to backwards compatibility reasons this writer recognizes RFC7952 metadata include keys QNames with empty URI (as exposed via XmlParserStream.LEGACY_ATTRIBUTE_NAMESPACE) as their QNameModule. These indicate an unqualified XML attribute and their value can be assumed to be a String. Furthermore, this extends to qualified attributes, which uses the proper namespace, but will not bind to a proper module revision. This caveat will be removed in a future version.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter

    org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.Extension, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension, org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MountPointExtension
  • Field Summary

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

    UNKNOWN_SIZE
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
     
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new writer with the specified context as its root.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    create(XMLStreamWriter writer, EffectiveModelContext context, boolean preferPrefixes)
    Create a new writer with the specified context as its root.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new writer with the specified context and rooted in the specified schema path.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    create(XMLStreamWriter writer, EffectiveModelContext context, @Nullable SchemaNodeIdentifier.Absolute path, boolean preferPrefixes)
    Create a new writer with the specified context and rooted in the specified schema path.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    create(XMLStreamWriter writer, EffectiveModelContext context, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path)
    Create a new writer with the specified context and rooted in the specified YangInstanceIdentifier.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    create(XMLStreamWriter writer, EffectiveModelContext context, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path, boolean preferPrefixes)
    Create a new writer with the specified context and rooted in the specified YangInstanceIdentifier.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new writer with the specified context and rooted at the specified node.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    create(XMLStreamWriter writer, EffectiveStatementInference inference, boolean preferPrefixes)
    Create a new writer with the specified context and rooted at the specified node.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new schema-less writer.
    final void
     
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new writer with the specified context and rooted in the specified operation's input.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    forInputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath, boolean preferPrefixes)
    Create a new writer with the specified context and rooted in the specified operation's input.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    Create a new writer with the specified context and rooted in the specified operation's output.
    static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter
    forOutputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath, boolean preferPrefixes)
    Create a new writer with the specified context and rooted in the specified operation's output.
    final void
    metadata(com.google.common.collect.ImmutableMap<QName,Object> attributes)
     
    final boolean
    startAnydataNode(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, Class<?> objectModel)
     
    final void
    startMapEntryNode(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates identifier, int childSizeHint)
     
    final void
    startMapNode(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)
     
    final void
    startOrderedMapNode(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)
     
    final void
    startUnkeyedList(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)
     
    final void
    startUnkeyedListItem(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier name, int childSizeHint)
     
    final List<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension>
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.opendaylight.yangtools.concepts.ExtensibleObject

    extension, findExtension

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

    domSourceValue, endNode, nextDataSchemaNode, scalarValue, startAnyxmlNode, startChoiceNode, startContainerNode, startLeafNode, startLeafSet, startLeafSetEntryNode, startOrderedLeafSet

    Methods inherited from interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension

    requireMetadataFirst
  • Method Details

    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context)
      Create a new writer with the specified context as its root.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context, boolean preferPrefixes)
      Create a new writer with the specified context as its root.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveStatementInference inference)
      Create a new writer with the specified context and rooted at the specified node.
      Parameters:
      writer - Output XMLStreamWriter
      inference - root node inference
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveStatementInference inference, boolean preferPrefixes)
      Create a new writer with the specified context and rooted at the specified node.
      Parameters:
      writer - Output XMLStreamWriter
      inference - root node inference
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context, @Nullable SchemaNodeIdentifier.Absolute path)
      Create a new writer with the specified context and rooted in the specified schema path.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      path - path
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context, @Nullable SchemaNodeIdentifier.Absolute path, boolean preferPrefixes)
      Create a new writer with the specified context and rooted in the specified schema path.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      path - path
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path)
      Create a new writer with the specified context and rooted in the specified YangInstanceIdentifier.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      path - path
      Returns:
      A new NormalizedNodeStreamWriter
    • create

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter create(XMLStreamWriter writer, EffectiveModelContext context, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path, boolean preferPrefixes)
      Create a new writer with the specified context and rooted in the specified YangInstanceIdentifier.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      path - path
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • forInputOf

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter forInputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath)
      Create a new writer with the specified context and rooted in the specified operation's input.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      operationPath - Parent operation (RPC or action) path.
      Returns:
      A new NormalizedNodeStreamWriter
    • forInputOf

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter forInputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath, boolean preferPrefixes)
      Create a new writer with the specified context and rooted in the specified operation's input.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      operationPath - Parent operation (RPC or action) path.
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • forOutputOf

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter forOutputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath)
      Create a new writer with the specified context and rooted in the specified operation's output.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      operationPath - Parent operation (RPC or action) path.
      Returns:
      A new NormalizedNodeStreamWriter
    • forOutputOf

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter forOutputOf(XMLStreamWriter writer, EffectiveModelContext context, SchemaNodeIdentifier.Absolute operationPath, boolean preferPrefixes)
      Create a new writer with the specified context and rooted in the specified operation's output.
      Parameters:
      writer - Output XMLStreamWriter
      context - Associated EffectiveModelContext.
      operationPath - Parent operation (RPC or action) path.
      preferPrefixes - prefer prefixes known to context
      Returns:
      A new NormalizedNodeStreamWriter
    • createSchemaless

      public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter createSchemaless(XMLStreamWriter writer)
      Create a new schema-less writer. Note that this version is intended for debugging where doesn't have a SchemaContext available and isn't meant for production use.
      Parameters:
      writer - Output XMLStreamWriter
      Returns:
      A new NormalizedNodeStreamWriter
    • supportedExtensions

      public final List<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension> supportedExtensions()
      Specified by:
      supportedExtensions in interface ExtensibleObject<org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter,org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.Extension>
    • 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
    • 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
    • startUnkeyedList

      public final 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
    • startMapNode

      public final 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
    • startOrderedMapNode

      public final 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
    • close

      public final void close() throws IOException
      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
      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
    • metadata

      public final void metadata(com.google.common.collect.ImmutableMap<QName,Object> attributes) throws IOException
      Specified by:
      metadata in interface org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension
      Throws:
      IOException
    • 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