Teach BaseSchema about schema mounts 58/84958/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Aug 2019 11:04:46 +0000 (13:04 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 7 Oct 2019 08:12:51 +0000 (10:12 +0200)
We are moving towards the ability to interpret mount points, make
sure base schema interprets them as empty.

Change-Id: Ifa51bac1f51e5b8311e976d0344c0d91b312571c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 8109ec2bf74a41288fe102ccfda3c58e2a8e62e3)

netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseSchema.java

index 12d71a7843e4144f72109d579a78c3ec3b9746f4..1c381b3b60a469582644d0f109952c9b9ec4a3f5 100644 (file)
@@ -10,7 +10,9 @@ package org.opendaylight.netconf.sal.connect.netconf.schema.mapping;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import java.util.Arrays;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
+import org.opendaylight.yangtools.rcf8528.data.util.EmptyMountPointContext;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
@@ -35,22 +37,26 @@ public enum BaseSchema implements SchemaContextProvider {
             .$YangModuleInfoImpl.getInstance()
     );
 
-    private final ImmutableMap<QName, RpcDefinition> mappedRpcs;
-    private final SchemaContext schemaContext;
+    private final @NonNull ImmutableMap<QName, RpcDefinition> mappedRpcs;
+    private final @NonNull EmptyMountPointContext mountContext;
 
     BaseSchema(final YangModuleInfo... modules) {
         final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
         moduleInfoBackedContext.addModuleInfos(Arrays.asList(modules));
-        schemaContext = moduleInfoBackedContext.tryToCreateSchemaContext().get();
-        mappedRpcs = Maps.uniqueIndex(schemaContext.getOperations(), RpcDefinition::getQName);
+        mountContext = new EmptyMountPointContext(moduleInfoBackedContext.tryToCreateSchemaContext().get());
+        mappedRpcs = Maps.uniqueIndex(getSchemaContext().getOperations(), RpcDefinition::getQName);
     }
 
-    ImmutableMap<QName, RpcDefinition> getMappedRpcs() {
+    @NonNull ImmutableMap<QName, RpcDefinition> getMappedRpcs() {
         return mappedRpcs;
     }
 
+    public @NonNull EmptyMountPointContext getMountPointContext() {
+        return mountContext;
+    }
+
     @Override
-    public SchemaContext getSchemaContext() {
-        return schemaContext;
+    public @NonNull SchemaContext getSchemaContext() {
+        return mountContext.getSchemaContext();
     }
 }