Cleanup NodeIdentifier instantiation 35/82335/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 30 May 2019 13:55:28 +0000 (15:55 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 30 May 2019 14:07:00 +0000 (16:07 +0200)
We have pre-computed NodeIdentifier instances for most cases where
we are using just a QName. This patch exposes constants and makes
sure we rely on them.

Change-Id: I8165e1679773c1ba390a17008061e2e0574f0e8f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformer.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/SchemalessMessageTransformer.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformer.java

index 5bc655cb938960b7c3fa5840e1cc39a973d2d955..17491a98a86f580b5c8b30c6d7ab75ad557af2b0 100644 (file)
@@ -24,7 +24,6 @@ import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransform
 import org.opendaylight.netconf.sal.connect.util.MessageCounter;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.YangConstants;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -100,8 +99,7 @@ public class BaseRpcSchemalessTransformer implements MessageTransformer<NetconfM
                     .build();
 
             normalizedNode = Builders.containerBuilder()
-                    .withNodeIdentifier(new YangInstanceIdentifier
-                            .NodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_QNAME))
+                    .withNodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_NODEID)
                     .withChild(xmlDataNode).build();
         } else {
             //other base rpcs don't have any output, we can simply construct the payload here
index 7559b4c4d83d578ce559f1375135616d369eccae..79bc20ad36533c89655bc8435b2d53f235c6c08a 100644 (file)
@@ -7,7 +7,9 @@
  */
 package org.opendaylight.netconf.sal.connect.netconf.schema.mapping;
 
+import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.CREATE_SUBSCRIPTION_RPC_QNAME;
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.IETF_NETCONF_NOTIFICATIONS;
+import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_RPC_REPLY_NODEID;
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_URI;
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.toPath;
 
@@ -45,7 +47,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.YangConstants;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
@@ -259,7 +260,7 @@ public class NetconfMessageTransformer implements MessageTransformer<NetconfMess
     private static boolean isBaseOrNotificationRpc(final QName rpc) {
         return rpc.getNamespace().equals(NETCONF_URI)
                 || rpc.getNamespace().equals(IETF_NETCONF_NOTIFICATIONS.getNamespace())
-                || rpc.getNamespace().equals(NetconfMessageTransformUtil.CREATE_SUBSCRIPTION_RPC_QNAME.getNamespace());
+                || rpc.getNamespace().equals(CREATE_SUBSCRIPTION_RPC_QNAME.getNamespace());
     }
 
     @Override
@@ -284,8 +285,7 @@ public class NetconfMessageTransformer implements MessageTransformer<NetconfMess
             }
 
             normalizedNode = Builders.containerBuilder()
-                    .withNodeIdentifier(new YangInstanceIdentifier
-                            .NodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_QNAME))
+                    .withNodeIdentifier(NETCONF_RPC_REPLY_NODEID)
                     .withChild(dataNode).build();
         } else {
 
index 1dcb6979b0f701863099d25a682a32ced88a0d06..365ba2309220ff8d372587ca3b7f014c663c12cd 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.netconf.sal.connect.api.MessageTransformer;
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
 import org.opendaylight.netconf.sal.connect.util.MessageCounter;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -33,14 +33,11 @@ import org.w3c.dom.Element;
  * Transforms anyxml rpcs for schemaless netconf devices.
  */
 public class SchemalessMessageTransformer implements MessageTransformer<NetconfMessage> {
-
-    private static final YangInstanceIdentifier.NodeIdentifier REPLY_ID =
-            new YangInstanceIdentifier.NodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_QNAME);
     // TODO maybe we should move this somewhere else as this
     // might be used in applications using schemaless mountpoints
-    public static final YangInstanceIdentifier.NodeIdentifier SCHEMALESS_NOTIFICATION_PAYLOAD =
+    public static final NodeIdentifier SCHEMALESS_NOTIFICATION_PAYLOAD =
             // FIXME: assign proper namespace
-            new YangInstanceIdentifier.NodeIdentifier(QName.create("", "schemaless-notification-payload"));
+            new NodeIdentifier(QName.create("", "schemaless-notification-payload"));
 
     private final MessageCounter counter;
 
@@ -61,7 +58,7 @@ public class SchemalessMessageTransformer implements MessageTransformer<NetconfM
         }
 
         final AnyXmlNode notificationPayload = Builders.anyXmlBuilder()
-                .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(notificationNoRev))
+                .withNodeIdentifier(new NodeIdentifier(notificationNoRev))
                 .withValue(new DOMSource(stripped.getValue().getDomElement()))
                 .build();
 
@@ -94,7 +91,7 @@ public class SchemalessMessageTransformer implements MessageTransformer<NetconfM
             result =  null;
         } else {
             result = Builders.anyXmlBuilder()
-                    .withNodeIdentifier(REPLY_ID)
+                    .withNodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_NODEID)
                     .withValue(new DOMSource(rpcReply.getDocument()))
                     .build();
         }
index 0a887bbbea7bf20caadbb296a89b08539bf3a8e3..defc0025e6295a288d5e6f44d67310d832237c15 100644 (file)
@@ -122,6 +122,8 @@ public final class NetconfMessageTransformUtil {
     public static final NodeIdentifier NETCONF_DATA_NODEID = NodeIdentifier.create(NETCONF_DATA_QNAME);
 
     public static final QName NETCONF_RPC_REPLY_QNAME = QName.create(NETCONF_QNAME, "rpc-reply").intern();
+    public static final NodeIdentifier NETCONF_RPC_REPLY_NODEID = NodeIdentifier.create(NETCONF_RPC_REPLY_QNAME);
+
     public static final QName NETCONF_OK_QNAME = QName.create(NETCONF_QNAME, "ok").intern();
     public static final QName NETCONF_ERROR_OPTION_QNAME = QName.create(NETCONF_QNAME, "error-option").intern();
     public static final NodeIdentifier NETCONF_ERROR_OPTION_NODEID = NodeIdentifier.create(NETCONF_ERROR_OPTION_QNAME);
@@ -205,7 +207,7 @@ public final class NetconfMessageTransformUtil {
     public static final ContainerNode CREATE_SUBSCRIPTION_RPC_CONTENT = Builders.containerBuilder()
             .withNodeIdentifier(NodeIdentifier.create(CREATE_SUBSCRIPTION_RPC_QNAME)).build();
 
-    private static final NodeIdentifier NETCONF_FILTER_NODEID = NodeIdentifier.create(NETCONF_FILTER_QNAME);
+    public static final NodeIdentifier NETCONF_FILTER_NODEID = NodeIdentifier.create(NETCONF_FILTER_QNAME);
 
     public static final DataContainerChild<?, ?> EMPTY_FILTER;
 
index 32390607b8cab4feb40b78c5eed585c985fc6ad4..cb5a40141981d4d52b00169572d0f6d842b276ff 100644 (file)
@@ -11,6 +11,9 @@ import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTr
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_CONFIG_QNAME;
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_DATA_NODEID;
 import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_DATA_QNAME;
+import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_FILTER_NODEID;
+import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_FILTER_QNAME;
+import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_OPERATION_QNAME;
 
 import com.google.common.base.Preconditions;
 import java.util.Collections;
@@ -121,16 +124,15 @@ class SchemalessRpcStructureTransformer implements RpcStructureTransformer {
     @Override
     public DataContainerChild<?, ?> toFilterStructure(final YangInstanceIdentifier path) {
         final Document document = XmlUtil.newDocument();
-        final QName filterQname = NetconfMessageTransformUtil.NETCONF_FILTER_QNAME;
-        final Element filter =
-                document.createElementNS(filterQname.getNamespace().toString(), filterQname.getLocalName());
-        final Attr a = document.createAttributeNS(filterQname.getNamespace().toString(), "type");
+        final String filterNs = NETCONF_FILTER_QNAME.getNamespace().toString();
+        final Element filter = document.createElementNS(filterNs, NETCONF_FILTER_QNAME.getLocalName());
+        final Attr a = document.createAttributeNS(filterNs, "type");
         a.setTextContent("subtree");
         filter.setAttributeNode(a);
         document.appendChild(filter);
         instanceIdToXmlStructure(path.getPathArguments(), filter);
         return Builders.anyXmlBuilder()
-                .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(filterQname))
+                .withNodeIdentifier(NETCONF_FILTER_NODEID)
                 .withValue(new DOMSource(document.getDocumentElement()))
                 .build();
     }
@@ -184,9 +186,8 @@ class SchemalessRpcStructureTransformer implements RpcStructureTransformer {
 
     private static void setOperationAttribute(final Optional<ModifyAction> operation, final Document document,
                                        final Element dataNode) {
-        final QName operationQname = NetconfMessageTransformUtil.NETCONF_OPERATION_QNAME;
-        final Attr operationAttribute =
-                document.createAttributeNS(operationQname.getNamespace().toString(), operationQname.getLocalName());
+        final Attr operationAttribute = document.createAttributeNS(NETCONF_OPERATION_QNAME.getNamespace().toString(),
+            NETCONF_OPERATION_QNAME.getLocalName());
         operationAttribute.setTextContent(toOperationString(operation.get()));
         dataNode.setAttributeNode(operationAttribute);
     }