Refactor EventFormatter constants 51/108851/3
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 4 Nov 2023 00:54:23 +0000 (01:54 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 4 Nov 2023 01:11:14 +0000 (02:11 +0100)
NotificationFormatter currently hosts a few constants which are really
unrelated to its operation. Move them to the appropriate places.

JIRA: NETCONF-1102
Change-Id: I04d1ed574d7d8fb8bf0a431d3fbba367e894ac9f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DataTreeCandidateFormatter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/EventFormatter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/NotificationFormatter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/XMLDataTreeCandidateFormatter.java

index 80e69eef43b64a615d9b5be47445c3ab22840d25..9ce5617601916d134f3d28b5c5eb9e661a205edc 100644 (file)
@@ -7,17 +7,14 @@
  */
 package org.opendaylight.restconf.nb.rfc8040.streams;
 
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.DATA_CHANGED_NOTIFICATION_ELEMENT;
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.DATA_CHANGE_EVENT_ELEMENT;
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.SAL_REMOTE_NAMESPACE;
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.XML_OUTPUT_FACTORY;
-
 import java.io.IOException;
 import java.util.List;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.xpath.XPathExpressionException;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.DataChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
 import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
@@ -30,6 +27,10 @@ import org.w3c.dom.Element;
  * Base formatter for DataTreeCandidates which only handles exporting to a document for filter checking purpose.
  */
 abstract class DataTreeCandidateFormatter extends EventFormatter<List<DataTreeCandidate>> {
+    private static final String DATA_CHANGE_EVENT_ELEMENT = DataChangeEvent.QNAME.getLocalName();
+    static final String DATA_CHANGED_NOTIFICATION_ELEMENT = DataChangedNotification.QNAME.getLocalName();
+    static final String DATA_CHANGED_NOTIFICATION_NS = DataChangedNotification.QNAME.getNamespace().toString();
+
     DataTreeCandidateFormatter(final TextParameters textParams) {
         super(textParams);
     }
@@ -44,7 +45,7 @@ abstract class DataTreeCandidateFormatter extends EventFormatter<List<DataTreeCa
             final List<DataTreeCandidate> input) throws IOException {
         final Element notificationElement = NotificationFormatter.createNotificationElement(doc);
         final Element notificationEventElement = doc.createElementNS(
-            SAL_REMOTE_NAMESPACE, DATA_CHANGED_NOTIFICATION_ELEMENT);
+            DATA_CHANGED_NOTIFICATION_NS, DATA_CHANGED_NOTIFICATION_ELEMENT);
 
         for (DataTreeCandidate candidate : input) {
             final Element dataChangedElement = doc.createElement(DATA_CHANGE_EVENT_ELEMENT);
index a5b4280230dd03a6aec47d374ec107b1c615a914..95973653a6ce66815de5862beba833616ebda4c5 100644 (file)
@@ -17,6 +17,7 @@ import java.time.format.DateTimeFormatter;
 import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLOutputFactory;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
@@ -54,6 +55,8 @@ abstract class EventFormatter<T> implements Immutable {
         DBF = f;
     }
 
+    static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newFactory();
+
     private final TextParameters textParams;
     private final XPathExpression filter;
 
index 66fbe7b1c626204c9024b37c004b1cd91a4abda5..b774d93b3a56ca689f9ca66f19daf3fc5b96bde9 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.restconf.nb.rfc8040.streams;
 import java.io.IOException;
 import java.io.Writer;
 import java.time.Instant;
-import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.dom.DOMResult;
@@ -19,8 +18,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.dom.api.DOMEvent;
 import org.opendaylight.mdsal.dom.api.DOMNotification;
 import org.opendaylight.netconf.api.NamespaceURN;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.DataChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.CreateNotificationStream;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
@@ -31,12 +29,9 @@ import org.w3c.dom.Element;
 
 abstract class NotificationFormatter extends EventFormatter<DOMNotification> {
     private static final String NOTIFICATION_ELEMENT = "notification";
-
-    static final String SAL_REMOTE_NAMESPACE = DataChangedNotification.QNAME.getNamespace().toString();
-    static final String DATA_CHANGED_NOTIFICATION_ELEMENT = DataChangedNotification.QNAME.getLocalName();
-    static final String DATA_CHANGE_EVENT_ELEMENT = DataChangeEvent.QNAME.getLocalName();
-
-    static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newFactory();
+    private static final String CREATE_NOTIFICATION_STREAM_ELEMENT = CreateNotificationStream.QNAME.getLocalName();
+    private static final String CREATE_NOTIFICATION_STREAM_NS =
+        CreateNotificationStream.QNAME.getNamespace().toString();
 
     NotificationFormatter(final TextParameters textParams) {
         super(textParams);
@@ -51,8 +46,9 @@ abstract class NotificationFormatter extends EventFormatter<DOMNotification> {
             throws IOException {
         final var notificationElement = createNotificationElement(doc,
             input instanceof DOMEvent domEvent ? domEvent.getEventInstant() : Instant.now());
-        final var notificationEventElement = doc.createElementNS(SAL_REMOTE_NAMESPACE, "create-notification-stream");
-        final var dataElement = doc.createElement("notification");
+        final var notificationEventElement = doc.createElementNS(CREATE_NOTIFICATION_STREAM_NS,
+            CREATE_NOTIFICATION_STREAM_ELEMENT);
+        final var dataElement = doc.createElement(NOTIFICATION_ELEMENT);
         final DOMResult result = new DOMResult(dataElement);
         try {
             final XMLStreamWriter writer = XML_OUTPUT_FACTORY.createXMLStreamWriter(result);
index 06a30dc5dc34015a68305a141f98426f540b99ea..d89293dd1b3c48fb7b3d4b4ae4bde634fca5d24d 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.restconf.nb.rfc8040.streams;
 
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.DATA_CHANGED_NOTIFICATION_ELEMENT;
-import static org.opendaylight.restconf.nb.rfc8040.streams.NotificationFormatter.SAL_REMOTE_NAMESPACE;
-
 import java.io.IOException;
 import java.io.StringWriter;
 import java.time.Instant;
@@ -53,8 +50,8 @@ public final class XMLDataTreeCandidateFormatter extends DataTreeCandidateFormat
         try {
             final var xmlStreamWriter = NotificationFormatter.createStreamWriterWithNotification(writer, now);
             xmlStreamWriter.writeStartElement(XMLConstants.DEFAULT_NS_PREFIX, DATA_CHANGED_NOTIFICATION_ELEMENT,
-                SAL_REMOTE_NAMESPACE);
-            xmlStreamWriter.writeDefaultNamespace(SAL_REMOTE_NAMESPACE);
+                DATA_CHANGED_NOTIFICATION_NS);
+            xmlStreamWriter.writeDefaultNamespace(DATA_CHANGED_NOTIFICATION_NS);
 
             final var serializer = new XmlDataTreeCandidateSerializer(schemaContext, xmlStreamWriter);
             for (var candidate : input) {