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.jsonjanusgraph.datamodel;
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.MapInterfaceInstanceDataDefinition;
29 import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum;
31 import java.util.HashMap;
34 public class TopologyTemplate extends ToscaElement{
36 public TopologyTemplate() {
37 super(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE);
39 private Map<String, PropertyDataDefinition> inputs;
40 private Map<String, MapPropertiesDataDefinition> instInputs;
41 private Map<String, ? extends ToscaDataDefinition> heatParameters;
42 private Map<String, MapPropertiesDataDefinition> instAttributes;
43 private Map<String, MapPropertiesDataDefinition> instProperties;
44 private Map<String, GroupDataDefinition> groups;
45 private Map<String, PolicyDataDefinition> policies;
46 private Map<String, MapGroupsDataDefinition> instGroups;
47 private Map<String, ArtifactDataDefinition> serviceApiArtifacts;
48 private Map<String, ForwardingPathDataDefinition> forwardingPaths;
49 private Map<String, CompositionDataDefinition> compositions;
50 private Map<String, MapListCapabilityDataDefinition> calculatedCapabilities;
51 private Map<String, MapListRequirementDataDefinition> calculatedRequirements;
52 private Map<String, MapListCapabilityDataDefinition> fullfilledCapabilities;
53 private Map<String, MapListRequirementDataDefinition> fullfilledRequirements;
54 private Map<String, MapCapabilityProperty> calculatedCapabilitiesProperties;
55 private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts;
56 private Map<String, MapArtifactDataDefinition> instanceArtifacts;
57 private Map<String, InterfaceDataDefinition> interfaces;
58 private Map<String, MapInterfaceInstanceDataDefinition> instInterfaces;
59 private Map<String, MapInterfaceDataDefinition> componentInstInterfaces;
60 private Map<String, DataTypeDataDefinition> dataTypes;
62 private Map<String, CINodeFilterDataDefinition> nodeFilterComponents;
63 //Component Instances External References (instanceId -> ExternalRefsMap)
64 //-----------------------------------------------------------------------
65 private Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs;
67 public Map<String, MapComponentInstanceExternalRefs> getMapComponentInstancesExternalRefs() {
68 return this.mapComponentInstancesExternalRefs;
71 public void setComponentInstancesExternalRefs(Map<String, MapComponentInstanceExternalRefs> mapComponentInstancesExternalRefs) {
72 this.mapComponentInstancesExternalRefs = mapComponentInstancesExternalRefs;
74 //-----------------------------------------------------------------------
76 public Map<String, InterfaceDataDefinition> getInterfaces() {
80 public void setInterfaces(Map<String, InterfaceDataDefinition> interfaces) {
81 this.interfaces = interfaces;
84 public Map<String, MapInterfaceInstanceDataDefinition> getInstInterfaces() {
85 return instInterfaces;
88 public void setInstInterfaces(
89 Map<String, MapInterfaceInstanceDataDefinition> instInterfaces) {
90 this.instInterfaces = instInterfaces;
93 public void addInstInterface(String compId, MapInterfaceInstanceDataDefinition
94 mapInterfaceInstanceDataDefinition) {
95 if(MapUtils.isEmpty(this.instInterfaces)) {
96 this.instInterfaces = new HashMap<>();
99 this.instInterfaces.put(compId, mapInterfaceInstanceDataDefinition);
102 public Map<String, MapInterfaceDataDefinition> getComponentInstInterfaces() {
103 return componentInstInterfaces;
106 public void setComponentInstInterfaces(
107 Map<String, MapInterfaceDataDefinition> componentInstInterfaces) {
108 this.componentInstInterfaces = componentInstInterfaces;
111 public void addComponentInstanceInterfaceMap(String componentInstanceId, MapInterfaceDataDefinition
112 mapInterfaceDataDefinition) {
113 if(MapUtils.isEmpty(this.componentInstInterfaces)) {
114 this.componentInstInterfaces = new HashMap<>();
117 this.componentInstInterfaces.put(componentInstanceId, mapInterfaceDataDefinition);
121 public Map<String, PropertyDataDefinition> getInputs() {
124 public void setInputs(Map<String, PropertyDataDefinition> inputs) {
125 this.inputs = inputs;
127 public Map<String, MapPropertiesDataDefinition> getInstInputs() {
130 public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) {
131 this.instInputs = instInputs;
133 public Map<String, ? extends ToscaDataDefinition> getHeatParameters() {
134 return heatParameters;
136 public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) {
137 this.heatParameters = heatParameters;
139 public Map<String, MapPropertiesDataDefinition> getInstAttributes() {
140 return instAttributes;
142 public void setInstAttributes(Map<String, MapPropertiesDataDefinition> instAttributes) {
143 this.instAttributes = instAttributes;
145 public Map<String, MapPropertiesDataDefinition> getInstProperties() {
146 return instProperties;
148 public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) {
149 this.instProperties = instProperties;
151 public Map<String, GroupDataDefinition> getGroups() {
154 public void setGroups(Map<String, GroupDataDefinition> groups) {
155 this.groups = groups;
157 public Map<String, PolicyDataDefinition> getPolicies() {
160 public void setPolicies(Map<String, PolicyDataDefinition> policies) {
161 this.policies = policies;
163 public Map<String, MapGroupsDataDefinition> getInstGroups() {
166 public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) {
167 this.instGroups = instGroups;
169 public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() {
170 return serviceApiArtifacts;
172 public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) {
173 this.serviceApiArtifacts = serviceApiArtifacts;
175 public Map<String, CompositionDataDefinition> getCompositions() {
178 public void setCompositions(Map<String, CompositionDataDefinition> compositions) {
179 this.compositions = compositions;
181 public Map<String, MapListCapabilityDataDefinition> getCalculatedCapabilities() {
182 return calculatedCapabilities;
184 public void setCalculatedCapabilities(Map<String, MapListCapabilityDataDefinition> calculatedCapabilities) {
185 this.calculatedCapabilities = calculatedCapabilities;
187 public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() {
188 return calculatedRequirements;
190 public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) {
191 this.calculatedRequirements = calculatedRequirements;
193 public Map<String, MapListCapabilityDataDefinition> getFullfilledCapabilities() {
194 return fullfilledCapabilities;
196 public void setFullfilledCapabilities(Map<String, MapListCapabilityDataDefinition> fullfilledCapabilities) {
197 this.fullfilledCapabilities = fullfilledCapabilities;
199 public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() {
200 return fullfilledRequirements;
202 public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) {
203 this.fullfilledRequirements = fullfilledRequirements;
206 public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() {
207 return instDeploymentArtifacts;
209 public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) {
210 this.instDeploymentArtifacts = instDeploymentArtifacts;
213 public Map<String, MapCapabilityProperty> getCalculatedCapabilitiesProperties() {
214 return calculatedCapabilitiesProperties;
216 public void setCalculatedCapabilitiesProperties(Map<String, MapCapabilityProperty> calculatedCapabilitiesProperties) {
217 this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties;
220 public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() {
221 return instanceArtifacts;
223 public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) {
224 this.instanceArtifacts = instanceArtifacts;
227 public Map<String, ForwardingPathDataDefinition> getForwardingPaths() {
228 return forwardingPaths;
231 public void setForwardingPaths(Map<String, ForwardingPathDataDefinition> forwardingPaths) {
232 this.forwardingPaths = forwardingPaths;
235 public Map<String, CINodeFilterDataDefinition> getNodeFilterComponents() {
236 return nodeFilterComponents;
239 public void setNodeFilterComponents(Map<String, CINodeFilterDataDefinition> nodeFilters) {
240 this.nodeFilterComponents = nodeFilters;
245 * @return Current data types.
247 public Map<String, DataTypeDataDefinition> getDataTypes() {
253 * @param dataTypes New data types.
255 public void setDataTypes(Map<String, DataTypeDataDefinition> dataTypes) {
256 this.dataTypes = dataTypes;
260 * Adds component instance to composition of topology template
261 * Note that component instance will be overrided in case if the topology template already contains a component instance with the same name
262 * @param componentInstance
264 public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){
265 if(getCompositions() == null){
266 compositions = new HashMap<>();
268 if(MapUtils.isEmpty(getCompositions())){
269 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
271 if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){
272 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>());
274 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance);
277 * Returns map of component instances from composition
280 public Map<String, ComponentInstanceDataDefinition> getComponentInstances() {
281 Map<String, ComponentInstanceDataDefinition> instances = null;
282 if(getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
283 instances = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances();
290 * Sets map of component instances to composition of topology template
291 * Note that component instances will be overrided in case if the topology template already contains a component instances
294 public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) {
295 if(getCompositions() == null){
296 compositions = new HashMap<>();
298 if(MapUtils.isEmpty(getCompositions())){
299 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition());
301 getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances);
303 public Map<String, RelationshipInstDataDefinition> getRelations() {
304 Map<String, RelationshipInstDataDefinition> relations = null;
305 if( getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){
306 relations = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getRelations();