Testtool functionality enhanced. User now may
[netconf.git] / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / operations / OperationsProvider.java
index de05df79961a6635ae6bdb9d85459f6213c1298c..91384f6e9e6c798195ae5927ba539e1d77184aef 100644 (file)
@@ -8,36 +8,32 @@
 
 package org.opendaylight.netconf.test.tool.operations;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Sets;
 import java.util.Collections;
 import java.util.Set;
 import org.opendaylight.controller.config.util.capability.Capability;
 import org.opendaylight.netconf.api.monitoring.CapabilityListener;
 import org.opendaylight.netconf.impl.SessionIdProvider;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
 import org.opendaylight.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.test.tool.rpc.DataList;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedCommit;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedCreateSubscription;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedDiscardChanges;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedEditConfig;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedGet;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedGetConfig;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedLock;
-import org.opendaylight.netconf.test.tool.rpc.SimulatedUnLock;
 
 
 public class OperationsProvider implements NetconfOperationServiceFactory {
+
     private final Set<Capability> caps;
-    private final SimulatedOperationService simulatedOperationService;
+    private final SessionIdProvider idProvider;
+    private final OperationsCreator operationsCreator;
 
     public OperationsProvider(final SessionIdProvider idProvider,
-                       final Set<Capability> caps) {
+        final Set<Capability> caps) {
+        this(idProvider, caps,
+            DefaultOperationsCreator.getDefaultOperationServiceCreator(idProvider.getCurrentSessionId()));
+    }
+
+    public OperationsProvider(final SessionIdProvider idProvider,
+        final Set<Capability> caps, OperationsCreator operationsCreator) {
         this.caps = caps;
-        simulatedOperationService = new SimulatedOperationService(
-            idProvider.getCurrentSessionId());
+        this.idProvider = idProvider;
+        this.operationsCreator = operationsCreator;
     }
 
     @Override
@@ -47,7 +43,7 @@ public class OperationsProvider implements NetconfOperationServiceFactory {
 
     @Override
     public AutoCloseable registerCapabilityListener(
-            final CapabilityListener listener) {
+        final CapabilityListener listener) {
         listener.onCapabilitiesChanged(caps, Collections.<Capability>emptySet());
         return new AutoCloseable() {
             @Override
@@ -58,38 +54,7 @@ public class OperationsProvider implements NetconfOperationServiceFactory {
 
     @Override
     public NetconfOperationService createService(
-            final String netconfSessionIdForReporting) {
-        return simulatedOperationService;
-    }
-
-    static class SimulatedOperationService implements NetconfOperationService {
-        private final long currentSessionId;
-
-        SimulatedOperationService(final long currentSessionId) {
-            this.currentSessionId = currentSessionId;
-        }
-
-        @Override
-        public Set<NetconfOperation> getNetconfOperations() {
-            final DataList storage = new DataList();
-            final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage);
-            final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage);
-            final SimulatedGetConfig sGetConfig = new SimulatedGetConfig(
-                String.valueOf(currentSessionId), storage, Optional.absent());
-            final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(currentSessionId));
-            final SimulatedLock sLock = new SimulatedLock(String.valueOf(currentSessionId));
-            final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(currentSessionId));
-            final SimulatedCreateSubscription sCreateSubs = new SimulatedCreateSubscription(
-                    String.valueOf(currentSessionId), Optional.absent());
-            final SimulatedDiscardChanges sDiscardChanges = new SimulatedDiscardChanges(
-                String.valueOf(currentSessionId));
-            return Sets.newHashSet(
-                sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges);
-        }
-
-        @Override
-        public void close() {
-        }
-
+        final String netconfSessionIdForReporting) {
+        return operationsCreator.getNetconfOperationService(caps, idProvider, netconfSessionIdForReporting);
     }
 }