Bump upstream versions
[netconf.git] / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / DummyMonitoringService.java
index 5ece664e179a54113b7824b3bd38327fd491f8e0..d3b185d2451b9dce70391bd76b0a494abfb457ae 100644 (file)
@@ -5,19 +5,20 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.test.tool;
 
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import java.util.Collections;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
 import java.util.Set;
-import javax.annotation.Nullable;
-import org.opendaylight.controller.config.util.capability.Capability;
+import org.opendaylight.netconf.api.capability.Capability;
 import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
 import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.netconf.api.monitoring.SessionEvent;
@@ -38,41 +39,31 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon
 
 public class DummyMonitoringService implements NetconfMonitoringService {
 
-    private static final Sessions EMPTY_SESSIONS = new SessionsBuilder().setSession(Collections.emptyList()).build();
-    private static final Function<Capability, Uri> CAPABILITY_URI_FUNCTION = new Function<Capability, Uri>() {
-        @Nullable
-        @Override
-        public Uri apply(Capability capability) {
-            return new Uri(capability.getCapabilityUri());
-        }
-    };
-
-    private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = new Function<Capability, Schema>() {
-        @Nullable
-        @Override
-        public Schema apply(@Nullable Capability capability) {
-            return new SchemaBuilder()
-                    .setIdentifier(capability.getModuleName().get())
-                    .setNamespace(new Uri(capability.getModuleNamespace().get()))
-                    .setFormat(Yang.class)
-                    .setVersion(capability.getRevision().get())
-                    .setLocation(Collections.singletonList(new Location(Enumeration.NETCONF)))
-                    .setKey(new SchemaKey(Yang.class, capability.getModuleName().get(), capability.getRevision().get()))
-                    .build();
-        }
-    };
+    private static final Sessions EMPTY_SESSIONS = new SessionsBuilder().build();
+    private static final Function<Capability, Uri> CAPABILITY_URI_FUNCTION =
+        capability -> new Uri(capability.getCapabilityUri());
+
+    private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = capability -> new SchemaBuilder()
+            .setIdentifier(capability.getModuleName().get())
+            .setNamespace(new Uri(capability.getModuleNamespace().get()))
+            .setFormat(Yang.VALUE)
+            .setVersion(capability.getRevision().orElse(""))
+            .setLocation(Set.of(new Location(Enumeration.NETCONF)))
+            .withKey(new SchemaKey(Yang.VALUE, capability.getModuleName().get(),
+                capability.getRevision().orElse("")))
+            .build();
 
     private final Capabilities capabilities;
     private final ArrayListMultimap<String, Capability> capabilityMultiMap;
     private final Schemas schemas;
 
-    public DummyMonitoringService(Set<Capability> capabilities) {
+    public DummyMonitoringService(final Set<Capability> capabilities) {
 
         this.capabilities = new CapabilitiesBuilder().setCapability(
-                Lists.newArrayList(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
+                ImmutableSet.copyOf(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
 
-        Set<Capability> moduleCapabilities = Sets.newHashSet();
-        this.capabilityMultiMap = ArrayListMultimap.create();
+        Set<Capability> moduleCapabilities = new HashSet<>();
+        capabilityMultiMap = ArrayListMultimap.create();
         for (Capability cap : capabilities) {
             if (cap.getModuleName().isPresent()) {
                 capabilityMultiMap.put(cap.getModuleName().get(), cap);
@@ -80,8 +71,10 @@ public class DummyMonitoringService implements NetconfMonitoringService {
             }
         }
 
-        this.schemas = new SchemasBuilder().setSchema(
-            Lists.newArrayList(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION))).build();
+        schemas = new SchemasBuilder()
+                .setSchema(Maps.uniqueIndex(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION),
+                    Schema::key))
+                .build();
     }
 
     @Override
@@ -93,17 +86,17 @@ public class DummyMonitoringService implements NetconfMonitoringService {
     public SessionListener getSessionListener() {
         return new SessionListener() {
             @Override
-            public void onSessionUp(NetconfManagementSession session) {
+            public void onSessionUp(final NetconfManagementSession session) {
                 //no op
             }
 
             @Override
-            public void onSessionDown(NetconfManagementSession session) {
+            public void onSessionDown(final NetconfManagementSession session) {
                 //no op
             }
 
             @Override
-            public void onSessionEvent(SessionEvent event) {
+            public void onSessionEvent(final SessionEvent event) {
                 //no op
             }
         };
@@ -115,13 +108,21 @@ public class DummyMonitoringService implements NetconfMonitoringService {
     }
 
     @Override
-    public String getSchemaForCapability(String moduleName, Optional<String> revision) {
-
-        for (Capability capability : capabilityMultiMap.get(moduleName)) {
-            if (capability.getRevision().get().equals(revision.get())) {
-                return capability.getCapabilitySchema().get();
+    public String getSchemaForCapability(final String moduleName, final Optional<String> revision) {
+        final List<Capability> capabilityList = capabilityMultiMap.get(moduleName);
+        if (revision.isPresent()) {
+            for (Capability capability : capabilityList) {
+                if (capability.getRevision().orElseThrow().equals(revision.get())) {
+                    return capability.getCapabilitySchema().orElseThrow();
+                }
             }
+        } else {
+            checkState(capabilityList.size() == 1,
+                "Expected 1 capability for module %s, available revisions : %s", moduleName, capabilityList);
+            //Only one revision is present, so return it
+            return capabilityList.iterator().next().getCapabilitySchema().orElseThrow();
         }
+
         throw new IllegalArgumentException(
             "Module with name: " + moduleName + " and revision: " + revision + " does not exist");
     }
@@ -132,12 +133,12 @@ public class DummyMonitoringService implements NetconfMonitoringService {
     }
 
     @Override
-    public AutoCloseable registerCapabilitiesListener(CapabilitiesListener listener) {
+    public AutoCloseable registerCapabilitiesListener(final CapabilitiesListener listener) {
         return null;
     }
 
     @Override
-    public AutoCloseable registerSessionsListener(SessionsListener listener) {
+    public AutoCloseable registerSessionsListener(final SessionsListener listener) {
         return null;
     }