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
@Override
public AutoCloseable registerCapabilityListener(
- final CapabilityListener listener) {
+ final CapabilityListener listener) {
listener.onCapabilitiesChanged(caps, Collections.<Capability>emptySet());
return new AutoCloseable() {
@Override
@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);
}
}