2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
19 import com.google.common.collect.ArrayListMultimap;
20 import com.google.common.collect.ListMultimap;
21 import com.google.common.collect.Multimaps;
22 import java.util.List;
26 * The type Port template consolidation data.
28 public class PortTemplateConsolidationData extends EntityConsolidationData {
30 // key - subport type - for ResourceGroup it is the nested file name
31 // value - List of subports of that type in the port
32 private final ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceConsolidationData =
33 Multimaps.synchronizedListMultimap(ArrayListMultimap.create());
35 public void addSubInterfaceConsolidationData(String subPortType,
36 SubInterfaceTemplateConsolidationData
37 subInterfaceTemplateConsolidationData) {
38 this.subInterfaceConsolidationData.put(subPortType, subInterfaceTemplateConsolidationData);
41 public boolean hasSameSubInterfaceTypes(PortTemplateConsolidationData other) {
42 return other != null && this.subInterfaceConsolidationData.keySet().equals(
43 other.subInterfaceConsolidationData.keySet());
46 public void copyMappedInto(ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceTypeToEntity) {
47 subInterfaceTypeToEntity.putAll(this.subInterfaceConsolidationData);
50 public void copyFlatInto(List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList) {
51 subInterfaceTemplateConsolidationDataList.addAll(subInterfaceConsolidationData.values());
54 public boolean isNumberOfSubInterfacesPerTypeSimilar(PortTemplateConsolidationData other) {
56 if (this.subInterfaceConsolidationData.isEmpty() &&
57 other.subInterfaceConsolidationData.isEmpty()) {
61 return !this.subInterfaceConsolidationData.isEmpty()
62 && !other.subInterfaceConsolidationData.isEmpty()
63 && this.subInterfaceConsolidationData.keySet().stream().allMatch(subInterfaceType ->
64 calculateSize(other.subInterfaceConsolidationData.get(subInterfaceType)) ==
65 calculateSize(this.subInterfaceConsolidationData.get(subInterfaceType)));
68 private int calculateSize(List<SubInterfaceTemplateConsolidationData> subInterfaces) {
69 return subInterfaces == null ? 0 : subInterfaces.size();