re base code
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / datatypes / heattotosca / unifiedmodel / consolidation / ConsolidationData.java
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
18
19 import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType;
20
21 import java.util.Optional;
22
23 public class ConsolidationData {
24
25     private final ComputeConsolidationData computeConsolidationData;
26     private final ComputeConsolidationDataHandler computeConsolidationDataHandler;
27
28     private final PortConsolidationData portConsolidationData;
29     private final PortConsolidationDataHandler portConsolidationDataHandler;
30     private final SubInterfaceConsolidationDataHandler subInterfaceConsolidationDataHandler;
31
32     private NestedConsolidationData nestedConsolidationData;
33     private final NestedConsolidationDataHandler nestedConsolidationDataHandler;
34
35     public ConsolidationData() {
36
37         computeConsolidationData = new ComputeConsolidationData();
38         computeConsolidationDataHandler = new ComputeConsolidationDataHandler(computeConsolidationData);
39
40         portConsolidationData = new PortConsolidationData();
41         portConsolidationDataHandler = new PortConsolidationDataHandler(portConsolidationData);
42         subInterfaceConsolidationDataHandler = new SubInterfaceConsolidationDataHandler(portConsolidationData);
43
44         nestedConsolidationData = new NestedConsolidationData();
45         nestedConsolidationDataHandler = new NestedConsolidationDataHandler(nestedConsolidationData);
46
47     }
48
49     /**
50      * Get Consolidation data handler by entity type.
51      *
52      * @return If there is no consolidation handler for a type, return an empty {@link Optional}.
53      */
54     public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) {
55
56         switch (type) {
57             case COMPUTE:
58                 return Optional.of(getComputeConsolidationDataHandler());
59             case PORT:
60                 return Optional.of(getPortConsolidationDataHandler());
61             case SUB_INTERFACE:
62                 return Optional.of(getSubInterfaceConsolidationDataHandler());
63             case NESTED:
64             case VFC_NESTED:
65                 return Optional.of(getNestedConsolidationDataHandler());
66             default:
67                 return Optional.empty();
68         }
69     }
70
71     public ComputeConsolidationDataHandler getComputeConsolidationDataHandler() {
72         return computeConsolidationDataHandler;
73     }
74
75     public PortConsolidationDataHandler getPortConsolidationDataHandler() {
76         return portConsolidationDataHandler;
77     }
78
79     public NestedConsolidationDataHandler getNestedConsolidationDataHandler() {
80         return nestedConsolidationDataHandler;
81     }
82
83     public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() {
84         return subInterfaceConsolidationDataHandler;
85     }
86
87     public ComputeConsolidationData getComputeConsolidationData() {
88         return computeConsolidationData;
89     }
90
91     public PortConsolidationData getPortConsolidationData() {
92         return portConsolidationData;
93     }
94
95     public NestedConsolidationData getNestedConsolidationData() {
96         return nestedConsolidationData;
97     }
98
99     public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) {
100         this.nestedConsolidationData = nestedConsolidationData;
101     }
102 }