X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fconfig%2FModuleConfig.java;h=dbaa7895d353d8c2217c97765f8b555f234402e7;hp=991a5637e1c3f549fb6609888abc8bfbae50e5bb;hb=c16bb7d2401d0f013e6dae3d0d877e3b7a208e46;hpb=dfe4a744e9b2ebbbd06e3e91b6100258c2744983 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java index 991a5637e1..dbaa7895d3 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java @@ -8,51 +8,70 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config; +import java.util.Collection; +import java.util.Date; +import java.util.Map; + +import javax.management.ObjectName; + import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; +import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig; import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType; import org.opendaylight.controller.netconf.util.xml.XmlElement; import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants; import org.opendaylight.controller.netconf.util.xml.XmlUtil; +import org.opendaylight.yangtools.yang.common.QName; import org.w3c.dom.Document; import org.w3c.dom.Element; -import javax.management.ObjectName; -import java.util.Collection; +import com.google.common.base.Optional; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; public class ModuleConfig { private final String moduleName; private final InstanceConfig instanceConfig; - private final Collection providedServices; + private final Multimap providedServices; - public ModuleConfig(String moduleName, InstanceConfig mbeanMapping, Collection providedServices) { + public ModuleConfig(String moduleName, InstanceConfig mbeanMapping, Collection providedServices) { this.moduleName = moduleName; this.instanceConfig = mbeanMapping; - this.providedServices = providedServices; + this.providedServices = mapServices(providedServices); + } + + private Multimap mapServices(Collection providedServices) { + Multimap mapped = HashMultimap.create(); + + for (QName providedService : providedServices) { + String key = providedService.getNamespace().toString(); + mapped.put(key, providedService.getLocalName()); + } + + return mapped; } public InstanceConfig getMbeanMapping() { return instanceConfig; } - public Collection getProvidedServices() { + public Multimap getProvidedServices() { return providedServices; } - public Element toXml(ObjectName instanceON, Services depTracker, Document document, String namespace) { - Element root = document.createElement(XmlNetconfConstants.MODULE_KEY); + public Element toXml(ObjectName instanceON, ServiceRegistryWrapper depTracker, Document document, String namespace) { + Element root = XmlUtil.createElement(document, XmlNetconfConstants.MODULE_KEY, Optional.absent()); // Xml.addNamespaceAttr(document, root, namespace); final String prefix = getPrefix(namespace); - Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlNetconfConstants.TYPE_KEY, prefix, - moduleName); - XmlUtil.addPrefixedNamespaceAttr(typeElement, prefix, namespace); + Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlUtil.createPrefixedValue(prefix, XmlNetconfConstants.TYPE_KEY), prefix, + moduleName, Optional.of(namespace)); // Xml.addNamespaceAttr(document, typeElement, // XMLUtil.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG); root.appendChild(typeElement); - Element nameElement = XmlUtil.createTextElement(document, XmlNetconfConstants.NAME_KEY, - ObjectNameUtil.getInstanceName(instanceON)); + Element nameElement = XmlUtil.createTextElement(document, XmlUtil.createPrefixedValue(prefix, XmlNetconfConstants.NAME_KEY), + ObjectNameUtil.getInstanceName(instanceON), Optional.of(namespace)); // Xml.addNamespaceAttr(document, nameElement, // XMLUtil.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG); root.appendChild(nameElement); @@ -64,16 +83,16 @@ public class ModuleConfig { private String getPrefix(String namespace) { // if(namespace.contains(":")==false) - return "prefix"; + return XmlNetconfConstants.PREFIX; // return namespace.substring(namespace.lastIndexOf(':') + 1, // namespace.length()); } - public ModuleElementResolved fromXml(XmlElement moduleElement, Services depTracker, String instanceName, - String moduleNamespace, EditStrategyType defaultStrategy) { + public ModuleElementResolved fromXml(XmlElement moduleElement, ServiceRegistryWrapper depTracker, String instanceName, + String moduleNamespace, EditStrategyType defaultStrategy, Map> identityMap) { - InstanceConfigElementResolved ice = instanceConfig.fromXml(moduleElement, depTracker, moduleNamespace, defaultStrategy); + InstanceConfigElementResolved ice = instanceConfig.fromXml(moduleElement, depTracker, moduleNamespace, defaultStrategy, providedServices, identityMap); return new ModuleElementResolved(instanceName, ice); }