1 package org.opendaylight.controller.config.facade.xml;
3 import com.google.common.collect.Sets;
5 import org.opendaylight.controller.config.facade.xml.osgi.YangStoreService;
6 import org.opendaylight.controller.config.util.ConfigRegistryClient;
7 import org.opendaylight.controller.config.util.ConfigRegistryJMXClient;
8 import org.opendaylight.controller.config.util.capability.Capability;
9 import org.opendaylight.controller.config.util.capability.YangModuleCapability;
10 import org.opendaylight.yangtools.yang.model.api.Module;
12 public class ConfigSubsystemFacadeFactory {
14 private ConfigRegistryClient cfgRegClient;
15 private ConfigRegistryJMXClient cfgRegClientNoNotifications;
16 private YangStoreService yangStoreService;
18 public ConfigSubsystemFacadeFactory(final ConfigRegistryClient cfgRegClient, final ConfigRegistryJMXClient jmxClientNoNotifications, final YangStoreService yangStoreService) {
19 this.cfgRegClient = cfgRegClient;
20 this.cfgRegClientNoNotifications = jmxClientNoNotifications;
21 this.yangStoreService = yangStoreService;
25 * Create new instance of ConfigSubsystemFacade. Each instance works with a dedicated transaction provider, making
26 * the instances suitable for facade-per-client use.
28 public ConfigSubsystemFacade createFacade(final String id) {
29 return new ConfigSubsystemFacade(cfgRegClient, cfgRegClientNoNotifications, yangStoreService, id);
32 public YangStoreService getYangStoreService() {
33 return yangStoreService;
36 public Set<Capability> getCurrentCapabilities() {
37 Set<Module> modules = yangStoreService.getModules();
38 final Set<Capability> capabilities = Sets.newHashSet();
39 for (Module module : modules) {
40 capabilities.add(new YangModuleCapability(module, yangStoreService.getModuleSource(module)));