aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java
blob: c46e7450e5927f06e7af760fca2b424e80ddaece (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*
 * Copyright © 2016-2018 European Support Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;

import java.util.Optional;
import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType;

public class ConsolidationData {

    private ComputeConsolidationData computeConsolidationData;
    private final ComputeConsolidationDataHandler computeConsolidationDataHandler;

    private PortConsolidationData portConsolidationData;
    private final PortConsolidationDataHandler portConsolidationDataHandler;
    private final SubInterfaceConsolidationDataHandler subInterfaceConsolidationDataHandler;

    private NestedConsolidationData nestedConsolidationData;
    private final NestedConsolidationDataHandler nestedConsolidationDataHandler;

    public ConsolidationData() {

        computeConsolidationData = new ComputeConsolidationData();
        computeConsolidationDataHandler = new ComputeConsolidationDataHandler(computeConsolidationData);

        portConsolidationData = new PortConsolidationData();
        portConsolidationDataHandler = new PortConsolidationDataHandler(portConsolidationData);
        subInterfaceConsolidationDataHandler = new SubInterfaceConsolidationDataHandler(portConsolidationData);

        nestedConsolidationData = new NestedConsolidationData();
        nestedConsolidationDataHandler = new NestedConsolidationDataHandler(nestedConsolidationData);

    }

    /**
     * Get Consolidation data handler by entity type.
     *
     * @return If there is no consolidation handler for a type, return an empty {@link Optional}.
     */
    public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) {

        switch (type) {
            case COMPUTE:
                return Optional.of(getComputeConsolidationDataHelper());
            case PORT:
                return Optional.of(getPortConsolidationDataHandler());
            case SUB_INTERFACE:
                return Optional.of(getSubInterfaceConsolidationDataHandler());
            case NESTED:
            case VFC_NESTED:
                return Optional.of(getNestedConsolidationDataHandler());
            default:
                return Optional.empty();
        }
    }

    public ComputeConsolidationDataHandler getComputeConsolidationDataHelper() {
        return computeConsolidationDataHandler;
    }

    public PortConsolidationDataHandler getPortConsolidationDataHandler() {
        return portConsolidationDataHandler;
    }

    public NestedConsolidationDataHandler getNestedConsolidationDataHandler() {
        return nestedConsolidationDataHandler;
    }

    public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() {
        return subInterfaceConsolidationDataHandler;
    }

    /**
     * Gets compute consolidation data.
     *
     * @return the compute consolidation data
     */
    public ComputeConsolidationData getComputeConsolidationData() {
        return computeConsolidationData;
    }

    /**
     * Sets compute consolidation data.
     *
     * @param computeConsolidationData the compute consolidation data
     */
    public void setComputeConsolidationData(ComputeConsolidationData computeConsolidationData) {
        this.computeConsolidationData = computeConsolidationData;
    }

    /**
     * Gets port consolidation data.
     *
     * @return the port consolidation data
     */
    public PortConsolidationData getPortConsolidationData() {
        return portConsolidationData;
    }

    /**
     * Sets port consolidation data.
     *
     * @param portConsolidationData the port consolidation data
     */
    public void setPortConsolidationData(PortConsolidationData portConsolidationData) {
        this.portConsolidationData = portConsolidationData;
    }

    /**
     * Gets nested consolidation data.
     *
     * @return the nested consolidation data
     */
    public NestedConsolidationData getNestedConsolidationData() {
        return nestedConsolidationData;
    }

    /**
     * Sets nested consolidation data.
     *
     * @param nestedConsolidationData the nested consolidation data
     */
    public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) {
        this.nestedConsolidationData = nestedConsolidationData;
    }
}