1891408f834624074fe5a052782d5b07937242d0
[sdc.git] /
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 final ComputeConsolidationData computeConsolidationData;
25     private final ComputeConsolidationDataHandler computeConsolidationDataHandler;
26
27     private final 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(getComputeConsolidationDataHandler());
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 getComputeConsolidationDataHandler() {
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     public ComputeConsolidationData getComputeConsolidationData() {
87         return computeConsolidationData;
88     }
89
90     public PortConsolidationData getPortConsolidationData() {
91         return portConsolidationData;
92     }
93
94     public NestedConsolidationData getNestedConsolidationData() {
95         return nestedConsolidationData;
96     }
97
98     public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) {
99         this.nestedConsolidationData = nestedConsolidationData;
100     }
101 }