Fix multiple keys path in RFC8040 swagger 74/96474/1
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Tue, 15 Jun 2021 07:46:05 +0000 (09:46 +0200)
committerRobert Varga <nite@hq.sk>
Tue, 15 Jun 2021 12:04:19 +0000 (12:04 +0000)
ListPathBuilder for RFC8040 needs to change its state
when processing multiple keys (= to ,) thus we have
to create it before the iteration over all list keys.

JIRA: NETCONF-708
Change-Id: If617ff1508e63b1001ab7857e3b3fdebff287f74
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit f17385e68a590b369cec43752af7f5b42943908b)

restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java

index c6a99382fc575fc57853265f793518f13ef5425b..b1928d8fc1379f6f4ae98bd5e9fa5a5dcdbeb607 100644 (file)
@@ -536,9 +536,8 @@ public abstract class BaseYangSwaggerGenerator {
         path.append(localName);
 
         if (schemaNode instanceof ListSchemaNode) {
-            final List<QName> listKeys = ((ListSchemaNode) schemaNode).getKeyDefinition();
-            for (final QName listKey : listKeys) {
-                final ListPathBuilder keyBuilder = newListPathBuilder();
+            final ListPathBuilder keyBuilder = newListPathBuilder();
+            for (final QName listKey : ((ListSchemaNode) schemaNode).getKeyDefinition()) {
                 final String paramName = createUniquePathParamName(listKey.getLocalName(), pathParams);
                 final String pathParamIdentifier = keyBuilder.nextParamIdentifier(paramName);