2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.model.jsontitan.datamodel;
23 import org.apache.commons.collections.MapUtils;
24 import org.openecomp.sdc.be.datatypes.elements.*;
25 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
26 import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
27 import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition;
29 import java.util.HashMap;
32 public class TopologyTemplate extends ToscaElement{
34 public TopologyTemplate() {
35 super(ToscaElementTypeEnum.TopologyTemplate);
37 private Map<String, PropertyDataDefinition> inputs;
38 private Map<String, MapPropertiesDataDefinition> instInputs;
39 private Map<String, ? extends ToscaDataDefinition> heatParameters;
40 private Map<String, MapPropertiesDataDefinition> instAttributes;
41 private Map<String, MapPropertiesDataDefinition> instProperties;
42 private Map<String, GroupDataDefinition> groups;
43 private Map<String, PolicyDataDefinition> policies;
44 private Map<String, MapGroupsDataDefinition> instGroups;
45 private Map<String, ArtifactDataDefinition> serviceApiArtifacts;
46 private Map<String, ForwardingPathDataDefinition> forwardingPaths;
47 private Map<String, CompositionDataDefinition> compositions;
49 private Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities;
50 private Map<String, MapListRequirementDataDefinition> calculatedRequirements;
51 private Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities;
52 private Map<String, MapListRequirementDataDefinition> fullfilledRequirements;
54 private Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties;
56 private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts;
57 private Map<String, MapArtifactDataDefinition> instanceArtifacts;
59 //Component Instances External References (instanceId -> ExternalRefsMap)
60 //-----------------------------------------------------------------------
61 private Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs;
62 public Map<String, MapComponentInstanceExternalRefs> getMapComponentInstancesExternalRefs() {
63 return this.mapComponentInstancesExternalRefs;
65 public void setComponentInstancesExternalRefs(Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs) {
66 this.mapComponentInstancesExternalRefs = mapComponentInstancesExternalRefs;
68 //-----------------------------------------------------------------------
71 public Map<String, PropertyDataDefinition> getInputs() {
74 public void setInputs(Map<String, PropertyDataDefinition> inputs) {
77 public Map<String, MapPropertiesDataDefinition> getInstInputs() {
80 public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) {
81 this.instInputs = instInputs;
83 public Map<String, ? extends ToscaDataDefinition> getHeatParameters() {
84 return heatParameters;
86 public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) {
87 this.heatParameters = heatParameters;
89 public Map<String, MapPropertiesDataDefinition> getInstAttributes() {
90 return instAttributes;
92 public void setInstAttributes(Map<String, MapPropertiesDataDefinition> instAttributes) {
93 this.instAttributes = instAttributes;
95 public Map<String, MapPropertiesDataDefinition> getInstProperties() {
96 return instProperties;
98 public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) {
99 this.instProperties = instProperties;
101 public Map<String, GroupDataDefinition> getGroups() {
104 public void setGroups(Map<String, GroupDataDefinition> groups) {
105 this.groups = groups;
107 public Map<String, PolicyDataDefinition> getPolicies() {
110 public void setPolicies(Map<String, PolicyDataDefinition> policies) {
111 this.policies = policies;
113 public Map<String, MapGroupsDataDefinition> getInstGroups() {
116 public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) {
117 this.instGroups = instGroups;
119 public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() {
120 return serviceApiArtifacts;
122 public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) {
123 this.serviceApiArtifacts = serviceApiArtifacts;
125 public Map<String, CompositionDataDefinition> getCompositions() {
128 public void setCompositions(Map<String, CompositionDataDefinition> compositions) {
129 this.compositions = compositions;
131 public Map<String, MapListCapabiltyDataDefinition> getCalculatedCapabilities() {
132 return calculatedCapabilities;
134 public void setCalculatedCapabilities(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities) {
135 this.calculatedCapabilities = calculatedCapabilities;
137 public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() {
138 return calculatedRequirements;
140 public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) {
141 this.calculatedRequirements = calculatedRequirements;
143 public Map<String, MapListCapabiltyDataDefinition> getFullfilledCapabilities() {
144 return fullfilledCapabilities;
146 public void setFullfilledCapabilities(Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities) {
147 this.fullfilledCapabilities = fullfilledCapabilities;
149 public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() {
150 return fullfilledRequirements;
152 public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) {
153 this.fullfilledRequirements = fullfilledRequirements;
156 public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() {
157 return instDeploymentArtifacts;
159 public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) {
160 this.instDeploymentArtifacts = instDeploymentArtifacts;
163 public Map<String, MapCapabiltyProperty> getCalculatedCapabilitiesProperties() {
164 return calculatedCapabilitiesProperties;
166 public void setCalculatedCapabilitiesProperties(Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties) {
167 this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties;
170 public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() {
171 return instanceArtifacts;
173 public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) {
174 this.instanceArtifacts = instanceArtifacts;
177 public Map<String, ForwardingPathDataDefinition> getForwardingPaths() {
178 return forwardingPaths;
181 public void setForwardingPaths(Map<String, ForwardingPathDataDefinition> forwardingPaths) {
182 this.forwardingPaths = forwardingPaths;
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
190 public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){
191 if(getCompositions() == null){
192 compositions = new HashMap<>();
194 if(MapUtils.isEmpty(getCompositions())){
195 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
197 if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){
198 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>());
200 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance);
203 * Returns map of component instances from composition
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();
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
220 public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) {
221 if(getCompositions() == null){
222 compositions = new HashMap<>();
224 if(MapUtils.isEmpty(getCompositions())){
225 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
227 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances);
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();