X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=catalog-be%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fcomponents%2Fimpl%2FInterfaceDefinitionHandler.java;h=8d713c48b0382d1a886c1416f8164256e524130d;hb=38a997dfc171ab2e8eb3e6a2fd27342a65bda8db;hp=3eb8d786b90d21388204bfffa26d2c45ba1f6ba5;hpb=d3bf58392f2a1c98b8d2289b70844ce39fb62e64;p=sdc.git diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InterfaceDefinitionHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InterfaceDefinitionHandler.java index 3eb8d786b9..8d713c48b0 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InterfaceDefinitionHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InterfaceDefinitionHandler.java @@ -42,12 +42,14 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; import org.apache.commons.collections.MapUtils; @@ -197,7 +199,7 @@ public class InterfaceDefinitionHandler { return operation; } - private Map handleInterfaceOperationMilestones(final Map interfaceMilestones) { + public Map handleInterfaceOperationMilestones(final Map interfaceMilestones) { final Map milestones = new HashMap<>(); for (final Entry interfaceInput : interfaceMilestones.entrySet()) { final MilestoneDataDefinition operationMilestone = new MilestoneDataDefinition(); @@ -311,24 +313,31 @@ public class InterfaceDefinitionHandler { final ListDataDefinition inputs = new ListDataDefinition<>(); final String defaultType = "tosca.dataTypes.tmf.milestoneJeopardyData"; for (final Entry interfaceInput : activityInputs.entrySet()) { - final OperationInputDefinition operationInput = new OperationInputDefinition(); - operationInput.setUniqueId(UUID.randomUUID().toString()); - operationInput.setInputId(operationInput.getUniqueId()); - operationInput.setName(interfaceInput.getKey()); - operationInput.setType(defaultType); - if (Objects.nonNull(interfaceInput.getValue())) { - if (interfaceInput.getValue() instanceof Map) { - Map valueMap = (Map) interfaceInput.getValue(); - if (valueMap.containsKey("jeopardyType") && valueMap.containsKey("name") && - valueMap.containsKey("eventType") && valueMap.containsKey("message")) { - operationInput.setValue(new Gson().toJson(interfaceInput.getValue())); - } - } + if (isMilestoneJeopardyData(interfaceInput.getValue())) { + final OperationInputDefinition operationInput = new OperationInputDefinition(); + operationInput.setUniqueId(UUID.randomUUID().toString()); + operationInput.setInputId(operationInput.getUniqueId()); + operationInput.setName(interfaceInput.getKey()); + operationInput.setType(defaultType); + operationInput.setValue(new Gson().toJson(interfaceInput.getValue())); + inputs.add(operationInput); } - inputs.add(operationInput); } return inputs; + } + + private boolean isMilestoneJeopardyData(Object value) { + if (value instanceof Map) { + Set allowedKeys = new HashSet<>(); + allowedKeys.add("jeopardyType"); + allowedKeys.add("name"); + allowedKeys.add("eventType"); + allowedKeys.add("message"); + Map valueMap = (Map) value; + return allowedKeys.containsAll(valueMap.keySet()); + } + return false; } private ListDataDefinition handleInterfaceOperationInputs(final Map interfaceInputs) {