Simplify code using Java 8 features
[netconf.git] / netconf / netconf-impl / src / main / java / org / opendaylight / netconf / impl / osgi / NetconfCapabilityMonitoringService.java
index 489d984a52ae37f28b292dd7e08bea5f8413f24b..f627f15a7e81902889567ab61fc09a7ae7800dd7 100644 (file)
@@ -23,8 +23,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.opendaylight.controller.config.util.capability.BasicCapability;
-import org.opendaylight.controller.config.util.capability.Capability;
+import org.opendaylight.netconf.api.capability.BasicCapability;
+import org.opendaylight.netconf.api.capability.Capability;
 import org.opendaylight.netconf.api.monitoring.CapabilityListener;
 import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
@@ -49,12 +49,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
     private static final List<Schema.Location> NETCONF_LOCATIONS = ImmutableList.of(NETCONF_LOCATION);
     private static final BasicCapability CANDIDATE_CAPABILITY =
             new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0");
-    private static final Function<Capability, Uri> CAPABILITY_TO_URI = new Function<Capability, Uri>() {
-        @Override
-        public Uri apply(final Capability input) {
-            return new Uri(input.getCapabilityUri());
-        }
-    };
+    private static final Function<Capability, Uri> CAPABILITY_TO_URI = input -> new Uri(input.getCapabilityUri());
 
     private final NetconfOperationServiceFactory netconfOperationProvider;
     private final Map<Uri, Capability> capabilities = Maps.newHashMap();
@@ -95,13 +90,13 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
                     revision.get(), revisionMapRequest.keySet());
 
             return schema;
-        } else {
-            Preconditions.checkState(revisionMapRequest.size() == 1,
-                    "Expected 1 capability for module %s, available revisions : %s", moduleName,
-                    revisionMapRequest.keySet());
-            //Only one revision is present, so return it
-            return revisionMapRequest.values().iterator().next();
         }
+
+        Preconditions.checkState(revisionMapRequest.size() == 1,
+                "Expected 1 capability for module %s, available revisions : %s", moduleName,
+                revisionMapRequest.keySet());
+        //Only one revision is present, so return it
+        return revisionMapRequest.values().iterator().next();
     }
 
     private void updateCapabilityToSchemaMap(final Set<Capability> added, final Set<Capability> removed) {
@@ -111,11 +106,8 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
             }
 
             final String currentModuleName = cap.getModuleName().get();
-            Map<String, String> revisionMap = mappedModulesToRevisionToSchema.get(currentModuleName);
-            if (revisionMap == null) {
-                revisionMap = Maps.newHashMap();
-                mappedModulesToRevisionToSchema.put(currentModuleName, revisionMap);
-            }
+            Map<String, String> revisionMap =
+                mappedModulesToRevisionToSchema.computeIfAbsent(currentModuleName, k -> Maps.newHashMap());
 
             final String currentRevision = cap.getRevision().get();
             revisionMap.put(currentRevision, cap.getCapabilitySchema().get());
@@ -134,7 +126,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
         }
     }
 
-    private static boolean isValidModuleCapability(Capability cap) {
+    private static boolean isValidModuleCapability(final Capability cap) {
         return cap.getModuleName().isPresent()
                 && cap.getRevision().isPresent()
                 && cap.getCapabilitySchema().isPresent();
@@ -149,12 +141,9 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
         listeners.add(listener);
         listener.onCapabilitiesChanged(getCapabilities());
         listener.onSchemasChanged(getSchemas());
-        return new AutoCloseable() {
-            @Override
-            public void close() throws Exception {
-                synchronized (NetconfCapabilityMonitoringService.this) {
-                    listeners.remove(listener);
-                }
+        return () -> {
+            synchronized (NetconfCapabilityMonitoringService.this) {
+                listeners.remove(listener);
             }
         };
     }
@@ -179,7 +168,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
 
                 builder.setLocation(transformLocations(cap.getLocation()));
 
-                builder.setKey(new SchemaKey(Yang.class, identifier, version));
+                builder.withKey(new SchemaKey(Yang.class, identifier, version));
 
                 schemas.add(builder.build());
             }
@@ -213,13 +202,13 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
     }
 
     @Override
-    public synchronized void close() throws Exception {
+    public synchronized void close() {
         listeners.clear();
         capabilities.clear();
     }
 
     @Override
-    public synchronized void onCapabilitiesChanged(Set<Capability> added, Set<Capability> removed) {
+    public synchronized void onCapabilitiesChanged(final Set<Capability> added, final Set<Capability> removed) {
         onCapabilitiesAdded(added);
         onCapabilitiesRemoved(removed);
         updateCapabilityToSchemaMap(added, removed);
@@ -231,9 +220,9 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
         }
     }
 
-    private void notifyCapabilityChanged(Capabilities capabilities) {
+    private void notifyCapabilityChanged(final Capabilities newCapabilities) {
         for (NetconfMonitoringService.CapabilitiesListener listener : listeners) {
-            listener.onCapabilitiesChanged(capabilities);
+            listener.onCapabilitiesChanged(newCapabilities);
             listener.onSchemasChanged(getSchemas());
         }
     }
@@ -242,14 +231,14 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
     private static NetconfCapabilityChange computeDiff(final Set<Capability> added, final Set<Capability> removed) {
         final NetconfCapabilityChangeBuilder netconfCapabilityChangeBuilder = new NetconfCapabilityChangeBuilder();
         netconfCapabilityChangeBuilder
-                .setChangedBy(new ChangedByBuilder().setServerOrUser(new ServerBuilder().setServer(true).build())
-                        .build());
+                .setChangedBy(new ChangedByBuilder().setServerOrUser(
+                    new ServerBuilder().setServer(Boolean.TRUE).build()).build());
         netconfCapabilityChangeBuilder.setDeletedCapability(Lists.newArrayList(Collections2
                 .transform(removed, CAPABILITY_TO_URI)));
         netconfCapabilityChangeBuilder.setAddedCapability(Lists.newArrayList(Collections2
                 .transform(added, CAPABILITY_TO_URI)));
         // TODO modified should be computed ... but why ?
-        netconfCapabilityChangeBuilder.setModifiedCapability(Collections.<Uri>emptyList());
+        netconfCapabilityChangeBuilder.setModifiedCapability(Collections.emptyList());
         return netconfCapabilityChangeBuilder.build();
     }
 
@@ -260,7 +249,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos
 
     private void onCapabilitiesRemoved(final Set<Capability> removedCaps) {
         for (final Capability addedCap : removedCaps) {
-            capabilities.remove(CAPABILITY_TO_URI.apply(addedCap));
+            capabilities.remove(new Uri(addedCap.getCapabilityUri()));
         }
     }