Fix multiple keys path in RFC8040 swagger 30/96530/3
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Tue, 15 Jun 2021 07:46:05 +0000 (09:46 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 15 Jun 2021 10:08:41 +0000 (12:08 +0200)
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>
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java

index bccb71eb6320d62203516f82fccdf14219e4541c..074e043049bab073f57c34b5ab929a8b61517eab 100644 (file)
@@ -537,9 +537,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);