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;
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<>();
/**
*
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()) {
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
// 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);
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);
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);
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;
}
return serviceName;
}
- public void setServiceName(String serviceName) {
+ public void setServiceName(final String serviceName) {
this.serviceName = serviceName;
}
}
@Override
- public boolean equals(Object obj) {
+ public boolean equals(final Object obj) {
if (this == obj){
return true;
}
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));
}
}