aboutsummaryrefslogtreecommitdiffstats
path: root/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
diff options
context:
space:
mode:
Diffstat (limited to 'common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java')
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java18
1 files changed, 10 insertions, 8 deletions
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
index 2eb8dcad2e..c9bf851e17 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
@@ -55,15 +55,17 @@ public class ListDataDefinition<T extends ToscaDataDefinition> extends ToscaData
listToscaDataDefinition.forEach(e -> e.setOwnerIdIfEmpty(ownerId));
}
}
-
-
- public Map<String, T> listToMapByName() {
- Map<String, T> mapByName = new HashMap<>();
- listToscaDataDefinition.forEach(e -> mapByName.put((String)e.getToscaPresentationValue(JsonPresentationFields.NAME), e));
- return mapByName;
- }
-
+ @Override
+ public <S extends ToscaDataDefinition> S mergeFunction(S other, boolean allowDefaultValueOverride){
+ Map<String, T> mapByName = listToMapByName(listToscaDataDefinition);
+ List<T> otherList = ((ListDataDefinition)other).getListToscaDataDefinition();
+ for(T item : otherList){
+ mapByName.merge(item.getName(), item, (thisItem, otherItem) -> thisItem.mergeFunction(otherItem, allowDefaultValueOverride));
+ }
+ ((ListDataDefinition)other).listToscaDataDefinition = mapByName.values().stream().collect(Collectors.toList());
+ return other;
+ }
}