Eliminate code duplication in doc creation 56/106256/11
authorŠimon Ukuš <simon.ukus@pantheon.tech>
Thu, 8 Jun 2023 11:52:40 +0000 (13:52 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Wed, 12 Jul 2023 12:05:09 +0000 (14:05 +0200)
New methods were created during elimination of Optionals
as method parameters which introduced some code duplicities.

This change takes this duplication and moves it into a separate method.

JIRA: NETCONF-998
Change-Id: I176a6454f1814627613849659829de760e8fd818
Signed-off-by: Šimon Ukuš <simon.ukus@pantheon.tech>
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/impl/BaseYangOpenApiGenerator.java

index 53bbcc90717d6a413d1ae6078ade0449147f02c9..63041d5a07ec4c2dddfbb7e407ff985d7224c862 100644 (file)
@@ -103,25 +103,24 @@ public abstract class BaseYangOpenApiGenerator {
         docBuilder.paths(new HashMap<>());
 
         final SortedSet<Module> sortedModules = getSortedModules(schemaContext);
-        fillDoc(docBuilder, sortedModules, schemaContext, context, deviceName, definitionNames);
-
-        // FIXME rework callers logic to make possible to return OpenApiObject from here
-        return docBuilder;
+        return getFilledDoc(uriInfo, schemaContext, deviceName, context, definitionNames, sortedModules);
     }
 
     public OpenApiObject.Builder getAllModulesDoc(final UriInfo uriInfo, final Range<Integer> range,
             final EffectiveModelContext schemaContext, final @NonNull String deviceName, final String context,
             final DefinitionNames definitionNames) {
-        final String schema = createSchemaFromUriInfo(uriInfo);
-        final String host = createHostFromUriInfo(uriInfo);
-        final String title = deviceName + " modules of RESTCONF";
-
-        final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(schema, host, BASE_PATH, title);
-        docBuilder.paths(new HashMap<>());
-
         final SortedSet<Module> sortedModules = getSortedModules(schemaContext);
         final Set<Module> filteredModules = filterByRange(sortedModules, range);
-        fillDoc(docBuilder, filteredModules, schemaContext, context, deviceName, definitionNames);
+        return getFilledDoc(uriInfo, schemaContext, deviceName, context, definitionNames, filteredModules);
+    }
+
+    private OpenApiObject.Builder getFilledDoc(final UriInfo uriInfo, final EffectiveModelContext schemaContext,
+        final String deviceName, final String context, final DefinitionNames definitionNames,
+        final Set<Module> modules) {
+        final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(createSchemaFromUriInfo(uriInfo),
+            createHostFromUriInfo(uriInfo), BASE_PATH, deviceName + " modules of RESTCONF");
+        docBuilder.paths(new HashMap<>());
+        fillDoc(docBuilder, modules, schemaContext, context, deviceName, definitionNames);
 
         // FIXME rework callers logic to make possible to return OpenApiObject from here
         return docBuilder;