1 package org.openecomp.sdc.be.model.jsontitan.datamodel;
3 import java.util.HashMap;
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;
22 public class TopologyTemplate extends ToscaElement{
24 public TopologyTemplate() {
25 super(ToscaElementTypeEnum.TopologyTemplate);
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;
37 private Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities;
38 private Map<String, MapListRequirementDataDefinition> calculatedRequirements;
39 private Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities;
40 private Map<String, MapListRequirementDataDefinition> fullfilledRequirements;
42 private Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties;
44 private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts;
45 private Map<String, MapArtifactDataDefinition> instanceArtifacts;
48 public Map<String, PropertyDataDefinition> getInputs() {
51 public void setInputs(Map<String, PropertyDataDefinition> inputs) {
54 public Map<String, MapPropertiesDataDefinition> getInstInputs() {
57 public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) {
58 this.instInputs = instInputs;
60 public Map<String, ? extends ToscaDataDefinition> getHeatParameters() {
61 return heatParameters;
63 public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) {
64 this.heatParameters = heatParameters;
66 public Map<String, MapPropertiesDataDefinition> getInstAttributes() {
67 return instAttributes;
69 public void setInstAttributes(Map<String, MapPropertiesDataDefinition> instAttributes) {
70 this.instAttributes = instAttributes;
72 public Map<String, MapPropertiesDataDefinition> getInstProperties() {
73 return instProperties;
75 public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) {
76 this.instProperties = instProperties;
78 public Map<String, GroupDataDefinition> getGroups() {
81 public void setGroups(Map<String, GroupDataDefinition> groups) {
84 public Map<String, MapGroupsDataDefinition> getInstGroups() {
87 public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) {
88 this.instGroups = instGroups;
90 public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() {
91 return serviceApiArtifacts;
93 public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) {
94 this.serviceApiArtifacts = serviceApiArtifacts;
96 public Map<String, CompositionDataDefinition> getCompositions() {
99 public void setCompositions(Map<String, CompositionDataDefinition> compositions) {
100 this.compositions = compositions;
102 public Map<String, MapListCapabiltyDataDefinition> getCalculatedCapabilities() {
103 return calculatedCapabilities;
105 public void setCalculatedCapabilities(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities) {
106 this.calculatedCapabilities = calculatedCapabilities;
108 public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() {
109 return calculatedRequirements;
111 public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) {
112 this.calculatedRequirements = calculatedRequirements;
114 public Map<String, MapListCapabiltyDataDefinition> getFullfilledCapabilities() {
115 return fullfilledCapabilities;
117 public void setFullfilledCapabilities(Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities) {
118 this.fullfilledCapabilities = fullfilledCapabilities;
120 public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() {
121 return fullfilledRequirements;
123 public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) {
124 this.fullfilledRequirements = fullfilledRequirements;
127 public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() {
128 return instDeploymentArtifacts;
130 public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) {
131 this.instDeploymentArtifacts = instDeploymentArtifacts;
134 public Map<String, MapCapabiltyProperty> getCalculatedCapabilitiesProperties() {
135 return calculatedCapabilitiesProperties;
137 public void setCalculatedCapabilitiesProperties(Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties) {
138 this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties;
141 public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() {
142 return instanceArtifacts;
144 public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) {
145 this.instanceArtifacts = instanceArtifacts;
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
152 public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){
153 if(getCompositions() == null){
154 compositions = new HashMap<>();
156 if(MapUtils.isEmpty(getCompositions())){
157 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
159 if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){
160 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>());
162 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance);
165 * Returns map of component instances from composition
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();
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
182 public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) {
183 if(getCompositions() == null){
184 compositions = new HashMap<>();
186 if(MapUtils.isEmpty(getCompositions())){
187 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
189 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances);
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();