X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-bierman02%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fstreams%2Flisteners%2FAbstractNotificationsData.java;fp=restconf%2Frestconf-nb-bierman02%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fstreams%2Flisteners%2FAbstractNotificationsData.java;h=0000000000000000000000000000000000000000;hb=e299375e295bf17cbc7292469c6f3e013d0d7aab;hp=7e7bc1a0b8d56487a7bbdbd793288acb4ba42f60;hpb=09c1d18add7cfc310f3d190a1a02a523159162ce;p=netconf.git diff --git a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/streams/listeners/AbstractNotificationsData.java b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/streams/listeners/AbstractNotificationsData.java deleted file mode 100644 index 7e7bc1a0b8..0000000000 --- a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/streams/listeners/AbstractNotificationsData.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.netconf.sal.streams.listeners; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.time.Instant; -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMResult; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import org.opendaylight.yangtools.util.xml.UntrustedXML; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -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.model.util.SchemaInferenceStack.Inference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * Abstract class for processing and preparing data. - * - */ -abstract class AbstractNotificationsData { - private static final Logger LOG = LoggerFactory.getLogger(AbstractNotificationsData.class); - private static final TransformerFactory TF = TransformerFactory.newInstance(); - private static final XMLOutputFactory OF = XMLOutputFactory.newFactory(); - - /** - * Formats data specified by RFC3339. - * - * @param now time stamp - * @return Data specified by RFC3339. - */ - protected static String toRFC3339(final Instant now) { - return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(OffsetDateTime.ofInstant(now, ZoneId.systemDefault())); - } - - /** - * Creates {@link Document} document. - * - * @return {@link Document} document. - */ - protected static Document createDocument() { - return UntrustedXML.newDocumentBuilder().newDocument(); - } - - /** - * Write normalized node to {@link DOMResult}. - * - * @param normalized - * data - * @param inference - * SchemaInferenceStack state for the data - * @return {@link DOMResult} - */ - protected DOMResult writeNormalizedNode(final NormalizedNode normalized, final Inference inference) - throws IOException, XMLStreamException { - final Document doc = UntrustedXML.newDocumentBuilder().newDocument(); - final DOMResult result = new DOMResult(doc); - NormalizedNodeWriter normalizedNodeWriter = null; - NormalizedNodeStreamWriter normalizedNodeStreamWriter = null; - XMLStreamWriter writer = null; - - try { - writer = OF.createXMLStreamWriter(result); - normalizedNodeStreamWriter = XMLStreamNormalizedNodeStreamWriter.create(writer, inference); - normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(normalizedNodeStreamWriter); - - normalizedNodeWriter.write(normalized); - - normalizedNodeWriter.flush(); - } finally { - if (normalizedNodeWriter != null) { - normalizedNodeWriter.close(); - } - if (normalizedNodeStreamWriter != null) { - normalizedNodeStreamWriter.close(); - } - if (writer != null) { - writer.close(); - } - } - - return result; - } - - /** - * Generating base element of every notification. - * - * @param doc - * base {@link Document} - * @return element of {@link Document} - */ - protected Element basePartDoc(final Document doc) { - final Element notificationElement = - doc.createElementNS("urn:ietf:params:xml:ns:netconf:notification:1.0", "notification"); - - doc.appendChild(notificationElement); - - final Element eventTimeElement = doc.createElement("eventTime"); - eventTimeElement.setTextContent(toRFC3339(Instant.now())); - notificationElement.appendChild(eventTimeElement); - - return notificationElement; - } - - /** - * Generating of {@link Document} transforming to string. - * - * @param doc - * {@link Document} with data - * @return - string from {@link Document} - */ - protected String transformDoc(final Document doc) { - final ByteArrayOutputStream out = new ByteArrayOutputStream(); - - try { - final Transformer transformer = TF.newTransformer(); - transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); - transformer.setOutputProperty(OutputKeys.METHOD, "xml"); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); - transformer.transform(new DOMSource(doc), new StreamResult(out)); - } catch (final TransformerException e) { - // FIXME: this should raise an exception - final String msg = "Error during transformation of Document into String"; - LOG.error(msg, e); - return msg; - } - - return new String(out.toByteArray(), StandardCharsets.UTF_8); - } -}