Revert "Replace #getPath in processInstanceIdentifierType" 68/100168/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 21 Mar 2022 07:52:37 +0000 (08:52 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 21 Mar 2022 07:59:46 +0000 (08:59 +0100)
This reverts commit 445e898b86ffe443776037e0fc769ddce3d19f58. The
proposed transformation is not valid.

Change-Id: I6479f27151191c2211682bcea8253b0439e9103e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/DefinitionGenerator.java

index 4b7309105436c7c0d62e94a1800fd54494b692c7..939eaf6f535107f6e3e15becaaa4a3614ea8fbc3 100644 (file)
@@ -56,6 +56,7 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
@@ -894,16 +895,16 @@ public class DefinitionGenerator {
 
     private static String processInstanceIdentifierType(final DataSchemaNode node, final ObjectNode property,
                                                         final EffectiveModelContext schemaContext) {
-        // create example instance-identifier to the first container of node's module if exists or leave it empty
-        final var module = schemaContext.findModule(node.getQName().getModule());
-        if (module.isPresent()) {
-            final var container = module.get().getChildNodes().stream()
-                    .filter(n -> n instanceof ContainerSchemaNode)
-                    .findFirst();
-            container.ifPresent(c -> setDefaultValue(property, String.format("/%s:%s", module.get().getPrefix(),
-                    c.getQName().getLocalName())));
+        SchemaPath path = node.getPath();
+
+        while (path.getParent() != null && path.getParent().getPathFromRoot().iterator().hasNext()) {
+            path = path.getParent();
         }
 
+        final QName rootContainer = path.getLastComponent();
+        final String rootContainerName = rootContainer.getLocalName();
+        final String prefix = schemaContext.findModule(rootContainer.getModule()).get().getPrefix();
+        setDefaultValue(property, String.format("/%s:%s", prefix, rootContainerName));
         return STRING_TYPE;
     }