workflowAction refactor 47/104747/1
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Mon, 30 Mar 2020 14:43:08 +0000 (16:43 +0200)
committerLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Tue, 31 Mar 2020 11:43:23 +0000 (13:43 +0200)
- extract code to private methods

Issue-ID: SO-2634
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
Change-Id: Ib5b88549ff410d2e2e93f79b9040211e47f4f6f0

bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java

index e01149f..d26b9d6 100644 (file)
@@ -168,46 +168,22 @@ public class WorkflowAction {
     }
 
     public void selectExecutionList(DelegateExecution execution) throws Exception {
-        execution.setVariable("sentSyncResponse", false);
-        execution.setVariable("homing", false);
-        execution.setVariable("calledHoming", false);
-        execution.setVariable(BBConstants.G_ISTOPLEVELFLOW, true);
-
         try {
             final String bpmnRequest = (String) execution.getVariable(BBConstants.G_BPMN_REQUEST);
             ServiceInstancesRequest sIRequest =
                     new ObjectMapper().readValue(bpmnRequest, ServiceInstancesRequest.class);
             RequestDetails requestDetails = sIRequest.getRequestDetails();
-            execution.setVariable("suppressRollback", requestDetails.getRequestInfo().getSuppressRollback());
             String uri = (String) execution.getVariable(BBConstants.G_URI);
             final String requestId = (String) execution.getVariable(BBConstants.G_REQUEST_ID);
             final boolean aLaCarte = (boolean) execution.getVariable(BBConstants.G_ALACARTE);
             boolean isResume = isUriResume(uri);
-            if (!aLaCarte && isResume) {
-                logger.debug("replacing URI {}", uri);
-                uri = bbInputSetupUtils.loadOriginalInfraActiveRequestById(requestId).getRequestUrl();
-                logger.debug("for RESUME with original value {}", uri);
-            }
-            Resource resource = extractResourceIdAndTypeFromUri(uri);
-            WorkflowType resourceType = resource.getResourceType();
-            execution.setVariable("resourceName", resourceType.toString());
-            String resourceId = "";
             String requestAction = (String) execution.getVariable(BBConstants.G_ACTION);
             WorkflowResourceIds workflowResourceIds = populateResourceIdsFromApiHandler(execution);
-            if (resource.isGenerated() && requestAction.equalsIgnoreCase("createInstance")
-                    && sIRequest.getRequestDetails().getRequestInfo().getInstanceName() != null) {
-                resourceId = validateResourceIdInAAI(resource.getResourceId(), resourceType,
-                        sIRequest.getRequestDetails().getRequestInfo().getInstanceName(), sIRequest.getRequestDetails(),
-                        workflowResourceIds);
-            } else {
-                resourceId = resource.getResourceId();
-            }
-            String serviceInstanceId = (String) execution.getVariable("serviceInstanceId");
-            if ((serviceInstanceId == null || serviceInstanceId.isEmpty()) && resourceType == WorkflowType.SERVICE) {
-                serviceInstanceId = resourceId;
-            }
-            execution.setVariable("resourceId", resourceId);
-            execution.setVariable("resourceType", resourceType);
+            Resource resource = getResource(bbInputSetupUtils, isResume, aLaCarte, uri, requestId);
+            String resourceId = getResourceId(resource, requestAction, requestDetails, workflowResourceIds);
+            WorkflowType resourceType = resource.getResourceType();
+            String serviceInstanceId = getServiceInstanceId(execution, resourceId, resourceType);
+            fillExecution(execution, requestDetails.getRequestInfo().getSuppressRollback(), resourceId, resourceType);
             List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
             if (isRequestMacroServiceResume(aLaCarte, resourceType, requestAction, serviceInstanceId)) {
                 flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
@@ -1681,4 +1657,46 @@ public class WorkflowAction {
         }
         return generatedResourceId;
     }
+
+    private void fillExecution(DelegateExecution execution, boolean suppressRollback, String resourceId,
+            WorkflowType resourceType) {
+        execution.setVariable("sentSyncResponse", false);
+        execution.setVariable("homing", false);
+        execution.setVariable("calledHoming", false);
+        execution.setVariable(BBConstants.G_ISTOPLEVELFLOW, true);
+        execution.setVariable("suppressRollback", suppressRollback);
+        execution.setVariable("resourceId", resourceId);
+        execution.setVariable("resourceType", resourceType);
+        execution.setVariable("resourceName", resourceType.toString());
+    }
+
+    private Resource getResource(BBInputSetupUtils bbInputSetupUtils, boolean isResume, boolean alaCarte, String uri,
+            String requestId) {
+        if (!alaCarte && isResume) {
+            logger.debug("replacing URI {}", uri);
+            uri = bbInputSetupUtils.loadOriginalInfraActiveRequestById(requestId).getRequestUrl();
+            logger.debug("for RESUME with original value {}", uri);
+        }
+        return extractResourceIdAndTypeFromUri(uri);
+    }
+
+    private String getResourceId(Resource resource, String requestAction, RequestDetails requestDetails,
+            WorkflowResourceIds workflowResourceIds) throws Exception {
+        if (resource.isGenerated() && requestAction.equalsIgnoreCase("createInstance")
+                && requestDetails.getRequestInfo().getInstanceName() != null) {
+            return validateResourceIdInAAI(resource.getResourceId(), resource.getResourceType(),
+                    requestDetails.getRequestInfo().getInstanceName(), requestDetails, workflowResourceIds);
+        } else {
+            return resource.getResourceId();
+        }
+    }
+
+    private String getServiceInstanceId(DelegateExecution execution, String resourceId, WorkflowType resourceType) {
+        String serviceInstanceId = (String) execution.getVariable("serviceInstanceId");
+        if ((serviceInstanceId == null || serviceInstanceId.isEmpty()) && WorkflowType.SERVICE.equals(resourceType)) {
+            serviceInstanceId = resourceId;
+        }
+        return serviceInstanceId;
+    }
+
 }