Migrate users of Optional.get()
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / nb / rfc8040 / streams / listeners / DataTreeCandidateFormatter.java
index 35ef644b17d8d5b0011ce6661310ca8675ae89fb..4a9cf9b9cfea128ab1fcde7596350dd70e966929 100644 (file)
@@ -9,26 +9,20 @@ package org.opendaylight.restconf.nb.rfc8040.streams.listeners;
 
 import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.DATA_CHANGED_NOTIFICATION_ELEMENT;
 import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.DATA_CHANGE_EVENT_ELEMENT;
-import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.NOTIFICATION_ELEMENT;
-import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.NOTIFICATION_NAMESPACE;
 import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.SAL_REMOTE_NAMESPACE;
 import static org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationFormatter.XML_OUTPUT_FACTORY;
 
 import java.io.IOException;
-import java.time.Instant;
 import java.util.Collection;
-import java.util.stream.Collectors;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.xpath.XPathExpressionException;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 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;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -47,11 +41,7 @@ abstract class DataTreeCandidateFormatter extends EventFormatter<Collection<Data
     @Override
     final void fillDocument(final Document doc, final EffectiveModelContext schemaContext,
             final Collection<DataTreeCandidate> input) throws IOException {
-        final Element notificationElement = doc.createElementNS(NOTIFICATION_NAMESPACE, NOTIFICATION_ELEMENT);
-        final Element eventTimeElement = doc.createElement("eventTime");
-        eventTimeElement.setTextContent(toRFC3339(Instant.now()));
-        notificationElement.appendChild(eventTimeElement);
-
+        final Element notificationElement = NotificationFormatter.createNotificationElement(doc);
         final Element notificationEventElement = doc.createElementNS(
             SAL_REMOTE_NAMESPACE, DATA_CHANGED_NOTIFICATION_ELEMENT);
 
@@ -62,12 +52,8 @@ abstract class DataTreeCandidateFormatter extends EventFormatter<Collection<Data
                 final DOMResult domResult = new DOMResult(dataElement);
                 final XMLStreamWriter writer = XML_OUTPUT_FACTORY.createXMLStreamWriter(domResult);
 
-                final SchemaPath path = SchemaPath.create(candidate.getRootPath().getPathArguments().stream()
-                        .filter(p -> !(p instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates))
-                        .map(YangInstanceIdentifier.PathArgument::getNodeType).collect(Collectors.toList()), true);
-
                 writeCandidate(XMLStreamNormalizedNodeStreamWriter.create(writer, schemaContext,
-                        path), candidate);
+                    candidate.getRootPath()), candidate);
 
                 dataChangedElement.appendChild(dataElement);
             } catch (final XMLStreamException e) {
@@ -82,7 +68,7 @@ abstract class DataTreeCandidateFormatter extends EventFormatter<Collection<Data
             throws IOException {
         if (candidate.getRootNode().getDataAfter().isPresent()) {
             try (NormalizedNodeWriter nodeWriter = NormalizedNodeWriter.forStreamWriter(writer)) {
-                nodeWriter.write(candidate.getRootNode().getDataAfter().get());
+                nodeWriter.write(candidate.getRootNode().getDataAfter().orElseThrow());
             }
         }
     }