Introduce overloaded buildResponse methods 44/106244/10
authorŠimon Ukuš <simon.ukus@pantheon.tech>
Thu, 8 Jun 2023 11:44:28 +0000 (13:44 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Wed, 12 Jul 2023 11:59:22 +0000 (13:59 +0200)
Remove the use of Optional as method parameter.
Separate the logic into two methods.

JIRA: NETCONF-998
Change-Id: I0c30b9ba17cc52876dd10c624424a1cbd8aef6d6
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/model/builder/OperationBuilder.java

index 3d1c17c096c697744824c787dbe7455690c5b6e0..3739523dd52ff5c81b01cbc2d64a5042239aca29 100644 (file)
@@ -16,7 +16,6 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.util.List;
-import java.util.Optional;
 import javax.ws.rs.HttpMethod;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -79,7 +78,7 @@ public final class OperationBuilder {
         final ObjectNode requestBody = createRequestBodyParameter(defName, xmlDefName, nodeName + CONFIG, summary);
         final ObjectNode responses = JsonNodeFactory.instance.objectNode();
         responses.set(String.valueOf(Response.Status.CREATED.getStatusCode()),
-                buildResponse(Response.Status.CREATED.getReasonPhrase(), Optional.empty()));
+                buildResponse(Response.Status.CREATED.getReasonPhrase()));
 
         return new Operation.Builder()
             .tags(tags)
@@ -149,9 +148,8 @@ public final class OperationBuilder {
 
         final ObjectNode responses = JsonNodeFactory.instance.objectNode();
         responses.set(String.valueOf(Response.Status.CREATED.getStatusCode()),
-                buildResponse(Response.Status.CREATED.getReasonPhrase(), Optional.empty()));
-        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()),
-                buildResponse("Updated", Optional.empty()));
+                buildResponse(Response.Status.CREATED.getReasonPhrase()));
+        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()), buildResponse("Updated"));
 
         return new Operation.Builder()
             .tags(tags)
@@ -174,9 +172,8 @@ public final class OperationBuilder {
 
         final ObjectNode responses = JsonNodeFactory.instance.objectNode();
         responses.set(String.valueOf(Response.Status.OK.getStatusCode()),
-                buildResponse(Response.Status.OK.getReasonPhrase(), Optional.empty()));
-        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()),
-                buildResponse("Updated", Optional.empty()));
+                buildResponse(Response.Status.OK.getReasonPhrase()));
+        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()), buildResponse("Updated"));
 
         return new Operation.Builder()
             .tags(tags)
@@ -197,8 +194,7 @@ public final class OperationBuilder {
         final ArrayNode parameters = JsonNodeFactory.instance.arrayNode().addAll(pathParams);
 
         final ObjectNode responses = JsonNodeFactory.instance.objectNode();
-        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()),
-                buildResponse("Deleted", Optional.empty()));
+        responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()), buildResponse("Deleted"));
 
         return new Operation.Builder()
             .tags(tags)
@@ -261,11 +257,9 @@ public final class OperationBuilder {
             final String defName = parentName + "_" + operationName + OUTPUT_SUFFIX + TOP
                     + definitionNames.getDiscriminator(output);
             schema.put(REF_KEY, COMPONENTS_PREFIX + defName);
-            responses.set(String.valueOf(Response.Status.OK.getStatusCode()), buildResponse(description,
-                    Optional.of(schema)));
+            responses.set(String.valueOf(Response.Status.OK.getStatusCode()), buildResponse(description, schema));
         } else {
-            responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()), buildResponse(description,
-                    Optional.empty()));
+            responses.set(String.valueOf(Response.Status.NO_CONTENT.getStatusCode()), buildResponse(description));
         }
         final String desc = operDef.getDescription().orElse("");
         final ArrayNode tags = buildTagsValue(deviceName, moduleName);
@@ -326,19 +320,21 @@ public final class OperationBuilder {
         return response;
     }
 
-    public static ObjectNode buildResponse(final String description, final Optional<ObjectNode> schema) {
+    private static ObjectNode buildResponse(final String description) {
         final ObjectNode response = JsonNodeFactory.instance.objectNode();
+        response.put(DESCRIPTION_KEY, description);
+        return response;
+    }
 
-        if (schema.isPresent()) {
-            final ObjectNode schemaValue = schema.orElseThrow();
-            final ObjectNode content = JsonNodeFactory.instance.objectNode();
-            final ObjectNode body = JsonNodeFactory.instance.objectNode();
-            for (final String mimeType : MIME_TYPES) {
-                content.set(mimeType, body);
-            }
-            body.set(SCHEMA_KEY, schemaValue);
-            response.set(CONTENT_KEY, content);
+    private static ObjectNode buildResponse(final String description, final ObjectNode schema) {
+        final ObjectNode response = JsonNodeFactory.instance.objectNode();
+        final ObjectNode content = JsonNodeFactory.instance.objectNode();
+        final ObjectNode body = JsonNodeFactory.instance.objectNode();
+        for (final String mimeType : MIME_TYPES) {
+            content.set(mimeType, body);
         }
+        body.set(SCHEMA_KEY, schema);
+        response.set(CONTENT_KEY, content);
         response.put(DESCRIPTION_KEY, description);
         return response;
     }