[SDC-29] catalog 1707 rebase commit.
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / ListRequirementDataDefinition.java
1 package org.openecomp.sdc.be.datatypes.elements;
2
3 import java.util.List;
4 import java.util.Map;
5 import java.util.stream.Collectors;
6
7 import org.codehaus.jackson.annotate.JsonCreator;
8 import org.codehaus.jackson.annotate.JsonValue;
9
10 public class ListRequirementDataDefinition extends ListDataDefinition<RequirementDataDefinition> {
11         
12         public ListRequirementDataDefinition(ListRequirementDataDefinition cdt) {
13                 super(cdt);
14                 
15         }
16         
17         @JsonCreator
18         public ListRequirementDataDefinition(List< RequirementDataDefinition > listToscaDataDefinition) {
19                 super(listToscaDataDefinition);
20         }
21         public ListRequirementDataDefinition() {
22                 super();
23                 
24         }
25         @JsonValue
26         @Override
27         public List<RequirementDataDefinition> getListToscaDataDefinition() {
28                 return listToscaDataDefinition;
29         }
30
31         
32         public void setListToscaDataDefinition(List<RequirementDataDefinition> listToscaDataDefinition) {
33                 this.listToscaDataDefinition = listToscaDataDefinition;
34         }
35
36         public ListRequirementDataDefinition mergeListItemsByName(ListRequirementDataDefinition other){
37                 Map<String, RequirementDataDefinition> mapByName = listToMapByName();
38                 Map<String, RequirementDataDefinition> mapOtherByName = other.listToMapByName();
39                 mapByName.putAll(mapOtherByName);
40                 return new ListRequirementDataDefinition(mapByName.values().stream().collect(Collectors.toList()));     
41         }
42         
43 }