Expose DOMSourceXMLStreamReader 58/116458/2 master
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 6 May 2025 05:48:48 +0000 (07:48 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 6 May 2025 11:53:21 +0000 (13:53 +0200)
We have a need to traverse DOMSource as reader in a downstream of
yang-data-codec-xml. Expose the hidden reader, allowing it to be used.

JIRA: YANGTOOLS-1668
Change-Id: I126e1a305a630ace93e36332423e38bde705679e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
codec/yang-data-codec-xml/src/main/java/module-info.java
codec/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReader.java

index adf3c97f60b3c4a8474dbd0905074a304250c343..cbae8eb4db276e767d5cf75d2ad41c768076a4bb 100644 (file)
 module org.opendaylight.yangtools.yang.data.codec.xml {
     exports org.opendaylight.yangtools.yang.data.codec.xml;
 
+    requires transitive java.xml;
+    requires transitive org.codehaus.stax2;
     requires transitive org.opendaylight.yangtools.yang.data.api;
     requires transitive org.opendaylight.yangtools.yang.data.util;
     requires transitive org.opendaylight.yangtools.yang.model.api;
 
-    requires java.xml;
     requires com.google.common;
-    requires org.codehaus.stax2;
     requires org.opendaylight.yangtools.util;
     requires org.opendaylight.yangtools.yang.common;
     requires org.opendaylight.yangtools.yang.data.impl;
index 1cb532d7775893884e0914662e70684ce4073e8d..b866d8535623a8502f5bde55e4c4a540173e0a44 100644 (file)
@@ -10,10 +10,21 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.dom.DOMSource;
+import org.codehaus.stax2.XMLStreamReader2;
 import org.codehaus.stax2.ri.dom.DOMWrappingReader;
 
-final class DOMSourceXMLStreamReader extends DOMWrappingReader {
-    DOMSourceXMLStreamReader(final DOMSource src) throws XMLStreamException {
+/**
+ * An {@link XMLStreamReader2} traversing over a {@link DOMSource}. The reader is always namespace-aware and coalescing.
+ */
+public final class DOMSourceXMLStreamReader extends DOMWrappingReader {
+    /**
+     * Default constructor.
+     *
+     * @param src backing {@link DOMSource}
+     * @throws IllegalArgumentException when there is no root node
+     * @throws XMLStreamException when the root node is not valid
+     */
+    public DOMSourceXMLStreamReader(final DOMSource src) throws XMLStreamException {
         super(src, true, true);
     }
 
@@ -32,6 +43,26 @@ final class DOMSourceXMLStreamReader extends DOMWrappingReader {
         return false;
     }
 
+    /**
+     * {@inheritDoc}
+     * @deprecated Do not call this method.
+     */
+    @Override
+    @Deprecated(forRemoval = true)
+    public void close() {
+        // No-op
+    }
+
+    /**
+     * {@inheritDoc}
+     * @deprecated Do not call this method.
+     */
+    @Override
+    @Deprecated(forRemoval = true)
+    public void closeCompletely() {
+        // No-op
+    }
+
     @Override
     protected void throwStreamException(final String msg, final Location loc) throws XMLStreamException {
         throw new XMLStreamException(msg, loc);