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%2FServiceRegistryWrapper.java;h=1f63555e83d93b57565ec44027114bd801eea0e1;hp=7df671297c4f38272a1b391ecfc97d4d72c8e132;hb=386d8f0ac5fa09ee5514d48284f1a4012f408b52;hpb=a57a5b4002790af8574db2b1d940106298bf18c3 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java index 7df671297c..1f63555e83 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java @@ -12,6 +12,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.opendaylight.controller.config.api.ServiceReferenceReadableRegistry; +import org.opendaylight.yangtools.yang.common.QName; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; @@ -19,8 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class ServiceRegistryWrapper { @@ -36,7 +35,9 @@ public class ServiceRegistryWrapper { public boolean hasRefName(String namespace, String serviceName, ObjectName on) { String qname = configServiceRefRegistry.getServiceInterfaceName(namespace, serviceName); Map forQName = configServiceRefRegistry.getServiceMapping().get(qname); - if(forQName==null) return false; + if(forQName==null){ + return false; + } return forQName.values().contains(on); } @@ -71,44 +72,33 @@ public class ServiceRegistryWrapper { Map>> retVal = Maps.newHashMap(); Map> serviceMapping = configServiceRefRegistry.getServiceMapping(); - for (String serviceQName : serviceMapping.keySet()) + for (String serviceQName : serviceMapping.keySet()){ for (String refName : serviceMapping.get(serviceQName).keySet()) { ObjectName on = serviceMapping.get(serviceQName).get(refName); Services.ServiceInstance si = Services.ServiceInstance.fromObjectName(on); - // FIXME use QName's new String constructor, after it is fixed -// QName qname; -// try { -// qname = new QName(serviceQName); -// } catch (ParseException e) { -// throw new IllegalStateException("Unable to parse qname of a service " + serviceQName, e); -// } - Pattern p = Pattern.compile("\\(([^\\(\\?]+)\\?[^\\?\\)]*\\)([^\\)]+)"); - Matcher matcher = p.matcher(serviceQName); - Preconditions.checkArgument(matcher.matches()); - String namespace = matcher.group(1); - String localName = matcher.group(2); - -// String namespace = qname.getNamespace().toString(); + QName qname = QName.create(serviceQName); + String namespace = qname.getNamespace().toString(); Map> serviceToRefs = retVal.get(namespace); if(serviceToRefs==null) { serviceToRefs = Maps.newHashMap(); retVal.put(namespace, serviceToRefs); } -// String localName = qname.getLocalName(); + String localName = qname.getLocalName(); Map refsToSis = serviceToRefs.get(localName); if(refsToSis==null) { refsToSis = Maps.newHashMap(); serviceToRefs.put(localName, refsToSis); } - Preconditions.checkState(refsToSis.containsKey(refName) == false, + Preconditions.checkState(!refsToSis.containsKey(refName), "Duplicate reference name %s for service %s:%s, now for instance %s", refName, namespace, localName, on); refsToSis.put(refName, si.toString()); } + } return retVal; } @@ -121,10 +111,11 @@ public class ServiceRegistryWrapper { Map> serviceNameToRefNameToInstance = getMappedServices().get(namespace); Map refNameToInstance; - if(serviceNameToRefNameToInstance == null || serviceNameToRefNameToInstance.containsKey(serviceName) == false) { + if(serviceNameToRefNameToInstance == null || !serviceNameToRefNameToInstance.containsKey(serviceName)) { refNameToInstance = Collections.emptyMap(); - } else + } else { refNameToInstance = serviceNameToRefNameToInstance.get(serviceName); + } final Set refNamesAsSet = toSet(refNameToInstance.keySet()); if (refNamesAsSet.contains(refName)) { @@ -148,12 +139,13 @@ public class ServiceRegistryWrapper { } private String findAvailableRefName(String refName, Set refNamesAsSet) { - String intitialRefName = refName; + String availableRefName = ""; while (true) { - refName = intitialRefName + "_" + suffix++; - if (refNamesAsSet.contains(refName) == false) - return refName; + availableRefName = refName + "_" + suffix++; + if (!refNamesAsSet.contains(availableRefName)){ + return availableRefName; + } } } }