diff options
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.java | 39 |
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("''"); |