Move generateUrlPrefixFromInstanceID method 20/107420/2
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Mon, 14 Aug 2023 13:21:20 +0000 (15:21 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Mon, 14 Aug 2023 15:04:51 +0000 (15:04 +0000)
Move generateUrlPrefixFromInstanceID to MountPointOpenApi class
as it is its only user.

Change-Id: I80c91b989767cb81e05feb3ee09e0505de0d465c
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/impl/BaseYangOpenApiGenerator.java
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/mountpoints/MountPointOpenApi.java

index 08385c75664c4e4bfe789237cd49b2eeb9783596..6d63b389ff8580af4c42494b9e758475d6d7d7eb 100644 (file)
@@ -31,7 +31,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.Set;
 import java.util.SortedSet;
@@ -51,9 +50,6 @@ import org.opendaylight.restconf.openapi.model.SecuritySchemes;
 import org.opendaylight.restconf.openapi.model.Server;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.ActionNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -394,23 +390,4 @@ public abstract class BaseYangOpenApiGenerator {
             .post(buildPostOperation(operDef, moduleName, deviceName, parentName, definitionNames, parentPathParams))
             .build();
     }
-
-    public String generateUrlPrefixFromInstanceID(final YangInstanceIdentifier key, final String moduleName) {
-        final StringBuilder builder = new StringBuilder();
-        builder.append("/");
-        if (moduleName != null) {
-            builder.append(moduleName).append(':');
-        }
-        for (final PathArgument arg : key.getPathArguments()) {
-            final String name = arg.getNodeType().getLocalName();
-            if (arg instanceof NodeIdentifierWithPredicates nodeId) {
-                for (final Entry<QName, Object> entry : nodeId.entrySet()) {
-                    builder.deleteCharAt(builder.length() - 1).append("=").append(entry.getValue()).append('/');
-                }
-            } else {
-                builder.append(name).append('/');
-            }
-        }
-        return builder.toString();
-    }
 }
index 1ab6bd92ef4052b4febfd237f5090d259fef8e04..fd340a73af6fcf87eb4b43d5c8ebacb2e9e44386 100644 (file)
@@ -48,6 +48,7 @@ import org.opendaylight.restconf.openapi.model.Schema;
 import org.opendaylight.restconf.openapi.model.SecuritySchemes;
 import org.opendaylight.restconf.openapi.model.Server;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -100,8 +101,7 @@ public class MountPointOpenApi implements DOMMountPointListener, AutoCloseable {
             final SchemaContext context = globalSchema.getGlobalContext();
             for (final Entry<YangInstanceIdentifier, Long> entry : instanceIdToLongId.entrySet()) {
                 final String modName = findModuleName(entry.getKey(), context);
-                urlToId.put(openApiGenerator.generateUrlPrefixFromInstanceID(entry.getKey(), modName),
-                        entry.getValue());
+                urlToId.put(generateUrlPrefixFromInstanceID(entry.getKey(), modName), entry.getValue());
             }
         }
         return urlToId;
@@ -119,7 +119,26 @@ public class MountPointOpenApi implements DOMMountPointListener, AutoCloseable {
 
     private String getYangMountUrl(final YangInstanceIdentifier key) {
         final String modName = findModuleName(key, globalSchema.getGlobalContext());
-        return openApiGenerator.generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
+        return generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
+    }
+
+    private static String generateUrlPrefixFromInstanceID(final YangInstanceIdentifier key, final String moduleName) {
+        final StringBuilder builder = new StringBuilder();
+        builder.append("/");
+        if (moduleName != null) {
+            builder.append(moduleName).append(':');
+        }
+        for (final PathArgument arg : key.getPathArguments()) {
+            final String name = arg.getNodeType().getLocalName();
+            if (arg instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates nodeId) {
+                for (final Entry<QName, Object> entry : nodeId.entrySet()) {
+                    builder.deleteCharAt(builder.length() - 1).append("=").append(entry.getValue()).append('/');
+                }
+            } else {
+                builder.append(name).append('/');
+            }
+        }
+        return builder.toString();
     }
 
     private YangInstanceIdentifier getInstanceId(final Long id) {