2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netconf.confignetconfconnector.osgi;
12 import org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacadeFactory;
13 import org.opendaylight.controller.config.util.capability.Capability;
14 import org.opendaylight.controller.config.util.capability.ModuleListener;
15 import org.opendaylight.netconf.api.monitoring.CapabilityListener;
16 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
18 public class NetconfOperationServiceFactoryImpl implements NetconfOperationServiceFactory {
20 private final ConfigSubsystemFacadeFactory configFacadeFactory;
22 public NetconfOperationServiceFactoryImpl(ConfigSubsystemFacadeFactory configFacadeFactory) {
23 this.configFacadeFactory = configFacadeFactory;
27 public NetconfOperationServiceImpl createService(String netconfSessionIdForReporting) {
28 return new NetconfOperationServiceImpl(configFacadeFactory.createFacade(netconfSessionIdForReporting), netconfSessionIdForReporting);
32 public Set<Capability> getCapabilities() {
33 return configFacadeFactory.getCurrentCapabilities();
37 public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
38 return configFacadeFactory.getYangStoreService().registerModuleListener(new ModuleListener() {
40 public void onCapabilitiesChanged(Set<Capability> added, Set<Capability> removed) {
41 listener.onCapabilitiesChanged(added, removed);