[SDC-29] rebase continue work to align source
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / jsontitan / datamodel / TopologyTemplate.java
1 package org.openecomp.sdc.be.model.jsontitan.datamodel;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.apache.commons.collections.MapUtils;
7 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
8 import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
9 import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition;
10 import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
11 import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
12 import org.openecomp.sdc.be.datatypes.elements.MapCapabiltyProperty;
13 import org.openecomp.sdc.be.datatypes.elements.MapGroupsDataDefinition;
14 import org.openecomp.sdc.be.datatypes.elements.MapListCapabiltyDataDefinition;
15 import org.openecomp.sdc.be.datatypes.elements.MapListRequirementDataDefinition;
16 import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition;
17 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
18 import org.openecomp.sdc.be.datatypes.elements.RelationshipInstDataDefinition;
19 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
20 import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
21
22 public class TopologyTemplate extends ToscaElement{
23
24         public TopologyTemplate() {
25                 super(ToscaElementTypeEnum.TopologyTemplate);
26         }
27         private Map<String, PropertyDataDefinition> inputs;
28         private Map<String, MapPropertiesDataDefinition> instInputs;
29         private Map<String, ? extends ToscaDataDefinition> heatParameters;
30         private Map<String, MapPropertiesDataDefinition> instAttributes;
31         private Map<String, MapPropertiesDataDefinition> instProperties;
32         private Map<String, GroupDataDefinition> groups;
33         private Map<String, MapGroupsDataDefinition> instGroups;
34         private Map<String, ArtifactDataDefinition> serviceApiArtifacts;
35         private Map<String, CompositionDataDefinition> compositions; 
36
37         private Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities;
38         private Map<String, MapListRequirementDataDefinition> calculatedRequirements;
39         private Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities;
40         private Map<String, MapListRequirementDataDefinition> fullfilledRequirements;
41         
42         private Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties;
43         
44         private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts;
45         private Map<String, MapArtifactDataDefinition> instanceArtifacts;
46
47         
48         public Map<String, PropertyDataDefinition> getInputs() {
49                 return inputs;
50         }
51         public void setInputs(Map<String, PropertyDataDefinition> inputs) {
52                 this.inputs = inputs;
53         }
54         public Map<String, MapPropertiesDataDefinition> getInstInputs() {
55                 return instInputs;
56         }
57         public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) {
58                 this.instInputs = instInputs;
59         }
60         public Map<String, ? extends ToscaDataDefinition> getHeatParameters() {
61                 return heatParameters;
62         }
63         public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) {
64                 this.heatParameters = heatParameters;
65         }
66         public Map<String, MapPropertiesDataDefinition> getInstAttributes() {
67                 return instAttributes;
68         }
69         public void setInstAttributes(Map<String, MapPropertiesDataDefinition> instAttributes) {
70                 this.instAttributes = instAttributes;
71         }
72         public Map<String, MapPropertiesDataDefinition> getInstProperties() {
73                 return instProperties;
74         }
75         public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) {
76                 this.instProperties = instProperties;
77         }
78         public Map<String, GroupDataDefinition> getGroups() {
79                 return groups;
80         }
81         public void setGroups(Map<String, GroupDataDefinition> groups) {
82                 this.groups = groups;
83         }
84         public Map<String, MapGroupsDataDefinition> getInstGroups() {
85                 return instGroups;
86         }
87         public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) {
88                 this.instGroups = instGroups;
89         }
90         public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() {
91                 return serviceApiArtifacts;
92         }
93         public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) {
94                 this.serviceApiArtifacts = serviceApiArtifacts;
95         }
96         public Map<String, CompositionDataDefinition> getCompositions() {
97                 return compositions;
98         }
99         public void setCompositions(Map<String, CompositionDataDefinition> compositions) {
100                 this.compositions = compositions;
101         }
102         public Map<String, MapListCapabiltyDataDefinition> getCalculatedCapabilities() {
103                 return calculatedCapabilities;
104         }
105         public void setCalculatedCapabilities(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities) {
106                 this.calculatedCapabilities = calculatedCapabilities;
107         }
108         public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() {
109                 return calculatedRequirements;
110         }
111         public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) {
112                 this.calculatedRequirements = calculatedRequirements;
113         }
114         public Map<String, MapListCapabiltyDataDefinition> getFullfilledCapabilities() {
115                 return fullfilledCapabilities;
116         }
117         public void setFullfilledCapabilities(Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities) {
118                 this.fullfilledCapabilities = fullfilledCapabilities;
119         }
120         public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() {
121                 return fullfilledRequirements;
122         }
123         public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) {
124                 this.fullfilledRequirements = fullfilledRequirements;
125         }
126         
127         public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() {
128                 return instDeploymentArtifacts;
129         }
130         public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) {
131                 this.instDeploymentArtifacts = instDeploymentArtifacts;
132         }
133         
134         public Map<String, MapCapabiltyProperty> getCalculatedCapabilitiesProperties() {
135                 return calculatedCapabilitiesProperties;
136         }
137         public void setCalculatedCapabilitiesProperties(Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties) {
138                 this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties;
139         }
140         
141         public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() {
142                 return instanceArtifacts;
143         }
144         public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) {
145                 this.instanceArtifacts = instanceArtifacts;
146         }
147         /**
148          * Adds component instance to composition of topology template
149          * Note that component instance will be overrided in case if the topology template already contains a component instance with the same name
150          * @param componentInstance
151          */
152         public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){
153                 if(getCompositions() == null){
154                         compositions = new HashMap<>();
155                 }
156                 if(MapUtils.isEmpty(getCompositions())){
157                         compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
158                 }
159                 if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){
160                         getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>());
161                 }
162                 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance);
163         }
164         /**
165          * Returns map of component instances from composition
166          * @return
167          */
168         public Map<String, ComponentInstanceDataDefinition> getComponentInstances() {
169                 Map<String, ComponentInstanceDataDefinition> instances = null;
170                 if(getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
171                         instances = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances();
172                 }
173                 return instances;
174         }
175         
176         
177         /**
178          * Sets map of component instances to composition of topology template
179          * Note that component instances will be overrided in case if the topology template already contains a component instances
180          * @param instances
181          */
182         public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) {
183                 if(getCompositions() == null){
184                         compositions = new HashMap<>();
185                 }
186                 if(MapUtils.isEmpty(getCompositions())){
187                         compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
188                 }
189                 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances);
190         }
191         public Map<String, RelationshipInstDataDefinition> getRelations() {
192                 Map<String, RelationshipInstDataDefinition> relations = null;
193                 if( getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
194                         relations = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getRelations();
195                 }
196                 return relations;
197         }
198 }