TOSCA Consolidation Data handling - Refactoring
[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 java.util.Optional;
20 import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType;
21
22 public class ConsolidationData {
23
24     private ComputeConsolidationData computeConsolidationData;
25     private final ComputeConsolidationDataHandler computeConsolidationDataHandler;
26
27     private PortConsolidationData portConsolidationData;
28     private final PortConsolidationDataHandler portConsolidationDataHandler;
29     private final SubInterfaceConsolidationDataHandler subInterfaceConsolidationDataHandler;
30
31     private NestedConsolidationData nestedConsolidationData;
32     private final NestedConsolidationDataHandler nestedConsolidationDataHandler;
33
34     public ConsolidationData() {
35
36         computeConsolidationData = new ComputeConsolidationData();
37         computeConsolidationDataHandler = new ComputeConsolidationDataHandler(computeConsolidationData);
38
39         portConsolidationData = new PortConsolidationData();
40         portConsolidationDataHandler = new PortConsolidationDataHandler(portConsolidationData);
41         subInterfaceConsolidationDataHandler = new SubInterfaceConsolidationDataHandler(portConsolidationData);
42
43         nestedConsolidationData = new NestedConsolidationData();
44         nestedConsolidationDataHandler = new NestedConsolidationDataHandler(nestedConsolidationData);
45
46     }
47
48     /**
49      * Get Consolidation data handler by entity type.
50      *
51      * @return If there is no consolidation handler for a type, return an empty {@link Optional}.
52      */
53     public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) {
54
55         switch (type) {
56             case COMPUTE:
57                 return Optional.of(getComputeConsolidationDataHelper());
58             case PORT:
59                 return Optional.of(getPortConsolidationDataHandler());
60             case SUB_INTERFACE:
61                 return Optional.of(getSubInterfaceConsolidationDataHandler());
62             case NESTED:
63             case VFC_NESTED:
64                 return Optional.of(getNestedConsolidationDataHandler());
65             default:
66                 return Optional.empty();
67         }
68     }
69
70     public ComputeConsolidationDataHandler getComputeConsolidationDataHelper() {
71         return computeConsolidationDataHandler;
72     }
73
74     public PortConsolidationDataHandler getPortConsolidationDataHandler() {
75         return portConsolidationDataHandler;
76     }
77
78     public NestedConsolidationDataHandler getNestedConsolidationDataHandler() {
79         return nestedConsolidationDataHandler;
80     }
81
82     public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() {
83         return subInterfaceConsolidationDataHandler;
84     }
85
86     /**
87      * Gets compute consolidation data.
88      *
89      * @return the compute consolidation data
90      */
91     public ComputeConsolidationData getComputeConsolidationData() {
92         return computeConsolidationData;
93     }
94
95     /**
96      * Sets compute consolidation data.
97      *
98      * @param computeConsolidationData the compute consolidation data
99      */
100     public void setComputeConsolidationData(ComputeConsolidationData computeConsolidationData) {
101         this.computeConsolidationData = computeConsolidationData;
102     }
103
104     /**
105      * Gets port consolidation data.
106      *
107      * @return the port consolidation data
108      */
109     public PortConsolidationData getPortConsolidationData() {
110         return portConsolidationData;
111     }
112
113     /**
114      * Sets port consolidation data.
115      *
116      * @param portConsolidationData the port consolidation data
117      */
118     public void setPortConsolidationData(PortConsolidationData portConsolidationData) {
119         this.portConsolidationData = portConsolidationData;
120     }
121
122     /**
123      * Gets nested consolidation data.
124      *
125      * @return the nested consolidation data
126      */
127     public NestedConsolidationData getNestedConsolidationData() {
128         return nestedConsolidationData;
129     }
130
131     /**
132      * Sets nested consolidation data.
133      *
134      * @param nestedConsolidationData the nested consolidation data
135      */
136     public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) {
137         this.nestedConsolidationData = nestedConsolidationData;
138     }
139 }