From 349b7feaaf62630e9221017d72d65d369072a8d7 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 21 Mar 2022 08:52:37 +0100 Subject: [PATCH] Revert "Replace #getPath in processInstanceIdentifierType" This reverts commit 445e898b86ffe443776037e0fc769ddce3d19f58. The proposed transformation is not valid. Change-Id: I6479f27151191c2211682bcea8253b0439e9103e Signed-off-by: Robert Varga --- .../sal/rest/doc/impl/DefinitionGenerator.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/DefinitionGenerator.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/DefinitionGenerator.java index 4b73091054..939eaf6f53 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/DefinitionGenerator.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/DefinitionGenerator.java @@ -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; } -- 2.36.6