*/
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;
* 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);
}
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);
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;
DBF = f;
}
+ static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newFactory();
+
private final TextParameters textParams;
private final XPathExpression filter;
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;
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;
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);
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);
*/
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;
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) {