aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java
index f4624b1649..e95f16eaac 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.google.gson.Gson;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -37,11 +38,16 @@ import org.apache.commons.collections.MapUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
+import org.openecomp.sdc.be.datatypes.elements.ActivityDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.InputDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.MilestoneDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.ActivityTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.MilestoneTypeEnum;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.DataTypeDefinition;
@@ -49,12 +55,14 @@ import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.Product;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.tosca.PropertyConvertor.PropertyType;
+import org.openecomp.sdc.be.tosca.model.ToscaActivity;
import org.openecomp.sdc.be.tosca.model.ToscaArtifactDefinition;
import org.openecomp.sdc.be.tosca.model.ToscaInput;
import org.openecomp.sdc.be.tosca.model.ToscaInterfaceDefinition;
import org.openecomp.sdc.be.tosca.model.ToscaInterfaceNodeType;
import org.openecomp.sdc.be.tosca.model.ToscaInterfaceOperationImplementation;
import org.openecomp.sdc.be.tosca.model.ToscaLifecycleOperationDefinition;
+import org.openecomp.sdc.be.tosca.model.ToscaMilestone;
import org.openecomp.sdc.be.tosca.model.ToscaNodeType;
import org.openecomp.sdc.be.tosca.model.ToscaProperty;
import org.openecomp.sdc.be.tosca.model.ToscaPropertyAssignment;
@@ -285,6 +293,7 @@ public class InterfacesOperationsConverter {
toscaLifecycleOperationDefinition.setDescription(operationEntry.getValue().getDescription());
}
fillToscaOperationInputs(operationEntry.getValue(), dataTypes, toscaLifecycleOperationDefinition);
+ fillToscaOperationMilestones(operationEntry.getValue(), dataTypes, toscaLifecycleOperationDefinition);
toscaOperationMap.put(operationEntry.getValue().getName(), toscaLifecycleOperationDefinition);
}
}
@@ -303,6 +312,36 @@ public class InterfacesOperationsConverter {
toscaInterfaceDefinitions.put(getLastPartOfName(interfaceType), interfaceDefinitionAsMap);
}
+ private void fillToscaOperationMilestones(OperationDataDefinition operation, Map<String, DataTypeDefinition> dataTypes,
+ ToscaLifecycleOperationDefinition toscaOperation) {
+ if (Objects.isNull(operation.getMilestones()) || operation.getMilestones().isEmpty()) {
+ toscaOperation.setMilestones(null);
+ return;
+ }
+ Map<String, ToscaMilestone> toscaMilestones = new HashMap<>();
+ for (Entry<String, MilestoneDataDefinition> milestone : operation.getMilestones().entrySet()) {
+ ListDataDefinition<ActivityDataDefinition> activities = milestone.getValue().getActivities();
+ if (MilestoneTypeEnum.getEnum(milestone.getKey()).isEmpty() || activities == null || activities.isEmpty()) {
+ continue;
+ }
+ List<Map<String, ToscaActivity>> toscaActivities = new ArrayList<>();
+ for (ActivityDataDefinition activity : activities.getListToscaDataDefinition()) {
+ if (ActivityTypeEnum.getEnum(activity.getType()).isEmpty()) {
+ continue;
+ }
+ Map<String, ToscaActivity> toscaActivityMap = new HashMap<>();
+ ToscaActivity toscaActivity = new ToscaActivity();
+ toscaActivity.setWorkflow(activity.getWorkflow());
+ toscaActivityMap.put(activity.getType(), toscaActivity);
+ toscaActivities.add(toscaActivityMap);
+ }
+ ToscaMilestone toscaMilestone = new ToscaMilestone();
+ toscaMilestone.setActivities(toscaActivities);
+ toscaMilestones.put(milestone.getKey(), toscaMilestone);
+ }
+ toscaOperation.setMilestones(toscaMilestones);
+ }
+
private boolean operationHasAnImplementation(OperationDataDefinition operation) {
return operation.getImplementation() != null && StringUtils.isNotEmpty(operation.getImplementation().getArtifactName()) &&
!operation.getImplementation().getArtifactName().equals("''");