re base code
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / jsontitan / datamodel / TopologyTemplate.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.model.jsontitan.datamodel;
22
23 import org.apache.commons.collections.MapUtils;
24 import org.openecomp.sdc.be.datatypes.elements.*;
25 import org.openecomp.sdc.be.datatypes.elements.MapCapabilityProperty;
26 import org.openecomp.sdc.be.datatypes.elements.MapListCapabilityDataDefinition;
27 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
28 import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
29
30 import java.util.HashMap;
31 import java.util.Map;
32
33 public class TopologyTemplate extends ToscaElement{
34
35     public TopologyTemplate() {
36         super(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE);
37     }
38     private Map<String, PropertyDataDefinition> inputs;
39     private Map<String, MapPropertiesDataDefinition> instInputs;
40     private Map<String, ? extends ToscaDataDefinition> heatParameters;
41     private Map<String, MapPropertiesDataDefinition> instAttributes;
42     private Map<String, MapPropertiesDataDefinition> instProperties;
43     private Map<String, GroupDataDefinition> groups;
44     private Map<String, PolicyDataDefinition> policies;
45     private Map<String, MapGroupsDataDefinition> instGroups;
46     private Map<String, ArtifactDataDefinition> serviceApiArtifacts;
47     private Map<String, ForwardingPathDataDefinition> forwardingPaths;
48     private Map<String, CompositionDataDefinition> compositions;
49     private Map<String, MapListCapabilityDataDefinition> calculatedCapabilities;
50     private Map<String, MapListRequirementDataDefinition> calculatedRequirements;
51     private Map<String, MapListCapabilityDataDefinition> fullfilledCapabilities;
52     private Map<String, MapListRequirementDataDefinition> fullfilledRequirements;
53     private Map<String, MapCapabilityProperty> calculatedCapabilitiesProperties;
54     private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts;
55     private Map<String, MapArtifactDataDefinition> instanceArtifacts;
56     
57     //Component Instances External References (instanceId -> ExternalRefsMap)
58     //-----------------------------------------------------------------------
59     private Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs;
60     
61     public Map<String, MapComponentInstanceExternalRefs> getMapComponentInstancesExternalRefs() {
62         return this.mapComponentInstancesExternalRefs;
63     }
64     
65     public void setComponentInstancesExternalRefs(Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs) {
66         this.mapComponentInstancesExternalRefs = mapComponentInstancesExternalRefs;
67     }
68     //-----------------------------------------------------------------------
69
70
71     public Map<String, PropertyDataDefinition> getInputs() {
72         return inputs;
73     }
74     public void setInputs(Map<String, PropertyDataDefinition> inputs) {
75         this.inputs = inputs;
76     }
77     public Map<String, MapPropertiesDataDefinition> getInstInputs() {
78         return instInputs;
79     }
80     public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) {
81         this.instInputs = instInputs;
82     }
83     public Map<String, ? extends ToscaDataDefinition> getHeatParameters() {
84         return heatParameters;
85     }
86     public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) {
87         this.heatParameters = heatParameters;
88     }
89     public Map<String, MapPropertiesDataDefinition> getInstAttributes() {
90         return instAttributes;
91     }
92     public void setInstAttributes(Map<String, MapPropertiesDataDefinition> instAttributes) {
93         this.instAttributes = instAttributes;
94     }
95     public Map<String, MapPropertiesDataDefinition> getInstProperties() {
96         return instProperties;
97     }
98     public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) {
99         this.instProperties = instProperties;
100     }
101     public Map<String, GroupDataDefinition> getGroups() {
102         return groups;
103     }
104     public void setGroups(Map<String, GroupDataDefinition> groups) {
105         this.groups = groups;
106     }
107     public Map<String, PolicyDataDefinition> getPolicies() {
108         return policies;
109     }
110     public void setPolicies(Map<String, PolicyDataDefinition> policies) {
111         this.policies = policies;
112     }
113     public Map<String, MapGroupsDataDefinition> getInstGroups() {
114         return instGroups;
115     }
116     public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) {
117         this.instGroups = instGroups;
118     }
119     public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() {
120         return serviceApiArtifacts;
121     }
122     public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) {
123         this.serviceApiArtifacts = serviceApiArtifacts;
124     }
125     public Map<String, CompositionDataDefinition> getCompositions() {
126         return compositions;
127     }
128     public void setCompositions(Map<String, CompositionDataDefinition> compositions) {
129         this.compositions = compositions;
130     }
131     public Map<String, MapListCapabilityDataDefinition> getCalculatedCapabilities() {
132         return calculatedCapabilities;
133     }
134     public void setCalculatedCapabilities(Map<String, MapListCapabilityDataDefinition> calculatedCapabilities) {
135         this.calculatedCapabilities = calculatedCapabilities;
136     }
137     public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() {
138         return calculatedRequirements;
139     }
140     public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) {
141         this.calculatedRequirements = calculatedRequirements;
142     }
143     public Map<String, MapListCapabilityDataDefinition> getFullfilledCapabilities() {
144         return fullfilledCapabilities;
145     }
146     public void setFullfilledCapabilities(Map<String, MapListCapabilityDataDefinition> fullfilledCapabilities) {
147         this.fullfilledCapabilities = fullfilledCapabilities;
148     }
149     public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() {
150         return fullfilledRequirements;
151     }
152     public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) {
153         this.fullfilledRequirements = fullfilledRequirements;
154     }
155
156     public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() {
157         return instDeploymentArtifacts;
158     }
159     public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) {
160         this.instDeploymentArtifacts = instDeploymentArtifacts;
161     }
162
163     public Map<String, MapCapabilityProperty> getCalculatedCapabilitiesProperties() {
164         return calculatedCapabilitiesProperties;
165     }
166     public void setCalculatedCapabilitiesProperties(Map<String, MapCapabilityProperty> calculatedCapabilitiesProperties) {
167         this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties;
168     }
169
170     public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() {
171         return instanceArtifacts;
172     }
173     public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) {
174         this.instanceArtifacts = instanceArtifacts;
175     }
176
177     public Map<String, ForwardingPathDataDefinition> getForwardingPaths() {
178         return forwardingPaths;
179     }
180
181     public void setForwardingPaths(Map<String, ForwardingPathDataDefinition> forwardingPaths) {
182         this.forwardingPaths = forwardingPaths;
183     }
184
185     /**
186      * Adds component instance to composition of topology template
187      * Note that component instance will be overrided in case if the topology template already contains a component instance with the same name
188      * @param componentInstance
189      */
190     public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){
191         if(getCompositions() == null){
192             compositions = new HashMap<>();
193         }
194         if(MapUtils.isEmpty(getCompositions())){
195             compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
196         }
197         if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){
198             getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>());
199         }
200         getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance);
201     }
202     /**
203      * Returns map of component instances from composition
204      * @return
205      */
206     public Map<String, ComponentInstanceDataDefinition> getComponentInstances() {
207         Map<String, ComponentInstanceDataDefinition> instances = null;
208         if(getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
209             instances = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances();
210         }
211         return instances;
212     }
213
214
215     /**
216      * Sets map of component instances to composition of topology template
217      * Note that component instances will be overrided in case if the topology template already contains a component instances
218      * @param instances
219      */
220     public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) {
221         if(getCompositions() == null){
222             compositions = new HashMap<>();
223         }
224         if(MapUtils.isEmpty(getCompositions())){
225             compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
226         }
227         getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances);
228     }
229     public Map<String, RelationshipInstDataDefinition> getRelations() {
230         Map<String, RelationshipInstDataDefinition> relations = null;
231         if( getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
232             relations = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getRelations();
233         }
234         return relations;
235     }
236 }