Pre-instantiate operations 90/57590/3
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 21 May 2017 14:12:48 +0000 (16:12 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 22 May 2017 14:20:47 +0000 (16:20 +0200)
There is no point in creating the operations over and over again.
Instantiate them immediately and keep them in an ImmutableSet.

Change-Id: I952bcf026b9d0de99252530e8fc44863408adb3e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/OperationProvider.java

index dc47f8e0dca504087241b185de11cf49eacea248..e74b0bdf4bf0a0187744e159195f2d742f5f9d38 100644 (file)
@@ -8,7 +8,7 @@
 
 package org.opendaylight.netconf.mdsal.connector;
 
-import com.google.common.collect.Sets;
+import com.google.common.collect.ImmutableSet;
 import java.util.Set;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
@@ -24,32 +24,25 @@ import org.opendaylight.netconf.mdsal.connector.ops.get.GetConfig;
 
 final class OperationProvider {
 
-    private final String netconfSessionIdForReporting;
-    private final CurrentSchemaContext schemaContext;
-    private final DOMDataBroker dataBroker;
-    private final DOMRpcService rpcService;
-    private final TransactionProvider transactionProvider;
+    private final Set<NetconfOperation> operations;
 
     OperationProvider(final String netconfSessionIdForReporting, final CurrentSchemaContext schemaContext,
                       final DOMDataBroker dataBroker, final DOMRpcService rpcService) {
-        this.netconfSessionIdForReporting = netconfSessionIdForReporting;
-        this.schemaContext = schemaContext;
-        this.dataBroker = dataBroker;
-        this.rpcService = rpcService;
-        this.transactionProvider = new TransactionProvider(this.dataBroker, netconfSessionIdForReporting);
+        final TransactionProvider transactionProvider = new TransactionProvider(dataBroker,
+            netconfSessionIdForReporting);
+
+        this.operations = ImmutableSet.of(
+            new Commit(netconfSessionIdForReporting, transactionProvider),
+            new DiscardChanges(netconfSessionIdForReporting, transactionProvider),
+            new EditConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
+            new Get(netconfSessionIdForReporting, schemaContext, transactionProvider),
+            new GetConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
+            new Lock(netconfSessionIdForReporting),
+            new Unlock(netconfSessionIdForReporting),
+            new RuntimeRpc(netconfSessionIdForReporting, schemaContext, rpcService));
     }
 
     Set<NetconfOperation> getOperations() {
-        return Sets.newHashSet(
-                new Commit(netconfSessionIdForReporting, transactionProvider),
-                new DiscardChanges(netconfSessionIdForReporting, transactionProvider),
-                new EditConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
-                new Get(netconfSessionIdForReporting, schemaContext, transactionProvider),
-                new GetConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
-                new Lock(netconfSessionIdForReporting),
-                new Unlock(netconfSessionIdForReporting),
-                new RuntimeRpc(netconfSessionIdForReporting, schemaContext, rpcService)
-        );
+        return operations;
     }
-
 }