Eliminate BindingToNormalizedNodeCodecFactory.getOrCreateInstance()
[controller.git] / opendaylight / config / config-manager-facade-xml / src / main / java / org / opendaylight / controller / config / facade / xml / mapping / config / Services.java
index c2683d44ab68c2a412da3a2169a1e33a09da46cb..9853bc79a26eb9db51b2ceb3e8bc39ec8d98a0a4 100644 (file)
@@ -11,7 +11,7 @@ package org.opendaylight.controller.config.facade.xml.mapping.config;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -36,8 +36,8 @@ public final class Services {
     public static final String TYPE_KEY = "type";
     public static final String SERVICE_KEY = "service";
 
-    private final Map<String /*Namespace*/, Map<String/* ServiceName */, Map<String/* refName */, ServiceInstance>>> namespaceToServiceNameToRefNameToInstance = Maps
-            .newHashMap();
+    private final Map<String /*Namespace*/, Map<String/* ServiceName */, Map<String/* refName */, ServiceInstance>>>
+            namespaceToServiceNameToRefNameToInstance = new HashMap<>();
 
     /**
      *
@@ -46,7 +46,7 @@ public final class Services {
         return namespaceToServiceNameToRefNameToInstance;
     }
 
-    private static Services resolveServices(Map<String, Map<String, Map<String, String>>> mappedServices) {
+    private static Services resolveServices(final Map<String, Map<String, Map<String, String>>> mappedServices) {
         Services tracker = new Services();
 
         for (Entry<String, Map<String, Map<String, String>>> namespaceEntry : mappedServices.entrySet()) {
@@ -57,18 +57,12 @@ public final class Services {
                 String serviceName = serviceEntry.getKey();
                 for (Entry<String, String> refEntry : serviceEntry.getValue().entrySet()) {
 
-                    Map<String, Map<String, ServiceInstance>> namespaceToServices = tracker.namespaceToServiceNameToRefNameToInstance.get(namespace);
-                    if (namespaceToServices == null) {
-                        namespaceToServices = Maps.newHashMap();
-                        tracker.namespaceToServiceNameToRefNameToInstance.put(namespace, namespaceToServices);
-                    }
+                    Map<String, Map<String, ServiceInstance>> namespaceToServices =
+                            tracker.namespaceToServiceNameToRefNameToInstance.computeIfAbsent(namespace,
+                                    k -> new HashMap<>());
 
                     Map<String, ServiceInstance> refNameToInstance = namespaceToServices
-                            .get(serviceName);
-                    if (refNameToInstance == null) {
-                        refNameToInstance = Maps.newHashMap();
-                        namespaceToServices.put(serviceName, refNameToInstance);
-                    }
+                            .computeIfAbsent(serviceName, k -> new HashMap<>());
 
                     String refName = refEntry.getKey();
                     //we want to compare reference not value of the provider
@@ -85,8 +79,8 @@ public final class Services {
 
     // TODO support edit strategies on services
 
-    public static Services fromXml(XmlElement xml) throws DocumentedException {
-        Map<String, Map<String, Map<String, String>>> retVal = Maps.newHashMap();
+    public static Services fromXml(final XmlElement xml) throws DocumentedException {
+        Map<String, Map<String, Map<String, String>>> retVal = new HashMap<>();
 
         List<XmlElement> services = xml.getChildElements(SERVICE_KEY);
         xml.checkUnrecognisedElements(services);
@@ -98,20 +92,13 @@ public final class Services {
 
             Preconditions.checkState(prefixNamespace.getKey()!=null && !prefixNamespace.getKey().equals(""), "Type attribute was not prefixed");
 
-            Map<String, Map<String, String>> namespaceToServices = retVal.get(prefixNamespace.getValue());
-            if(namespaceToServices == null) {
-                namespaceToServices = Maps.newHashMap();
-                retVal.put(prefixNamespace.getValue(), namespaceToServices);
-            }
+            Map<String, Map<String, String>> namespaceToServices =
+                    retVal.computeIfAbsent(prefixNamespace.getValue(), k -> new HashMap<>());
 
             String serviceName =  ObjectNameAttributeReadingStrategy
                 .checkPrefixAndExtractServiceName(typeElement, prefixNamespace);
 
-            Map<String, String> innerMap = namespaceToServices.get(serviceName);
-            if (innerMap == null) {
-                innerMap = Maps.newHashMap();
-                namespaceToServices.put(serviceName, innerMap);
-            }
+            Map<String, String> innerMap = namespaceToServices.computeIfAbsent(serviceName, k -> new HashMap<>());
 
             List<XmlElement> instances = service.getChildElements(XmlMappingConstants.INSTANCE_KEY);
             service.checkUnrecognisedElements(instances, typeElement);
@@ -141,7 +128,7 @@ public final class Services {
         return resolveServices(retVal);
     }
 
-    public static Element toXml(ServiceRegistryWrapper serviceRegistryWrapper, Document document) {
+    public static Element toXml(final ServiceRegistryWrapper serviceRegistryWrapper, final Document document) {
         final Optional<String> configNs = Optional.of(XmlMappingConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
         Element root = XmlUtil.createElement(document, XmlMappingConstants.SERVICES_KEY, configNs);
 
@@ -183,7 +170,7 @@ public final class Services {
     public static final class ServiceInstance {
         public static final ServiceInstance EMPTY_SERVICE_INSTANCE = new ServiceInstance("", "");
 
-        public ServiceInstance(String moduleName, String instanceName) {
+        public ServiceInstance(final String moduleName, final String instanceName) {
             this.moduleName = moduleName;
             this.instanceName = instanceName;
         }
@@ -210,7 +197,7 @@ public final class Services {
             return serviceName;
         }
 
-        public void setServiceName(String serviceName) {
+        public void setServiceName(final String serviceName) {
             this.serviceName = serviceName;
         }
 
@@ -258,7 +245,7 @@ public final class Services {
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj){
                 return true;
             }
@@ -286,11 +273,11 @@ public final class Services {
             return true;
         }
 
-        public ObjectName getObjectName(String transactionName) {
+        public ObjectName getObjectName(final String transactionName) {
             return ObjectNameUtil.createTransactionModuleON(transactionName, moduleName, instanceName);
         }
 
-        public static ServiceInstance fromObjectName(ObjectName on) {
+        public static ServiceInstance fromObjectName(final ObjectName on) {
             return new ServiceInstance(ObjectNameUtil.getFactoryName(on), ObjectNameUtil.getInstanceName(on));
         }
     }