Service Consumption BE
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / ComponentInstance.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;
22
23 import org.apache.commons.collections.MapUtils;
24 import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
25 import org.openecomp.sdc.be.datatypes.elements.PropertiesOwner;
26 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
27 import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
28
29 import java.util.Collections;
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33
34 public class ComponentInstance extends ComponentInstanceDataDefinition implements PropertiesOwner {
35
36     private Map<String, List<CapabilityDefinition>> capabilities;
37     private Map<String, List<RequirementDefinition>> requirements;
38     private Map<String, ArtifactDefinition> deploymentArtifacts;
39     private Map<String, ArtifactDefinition> artifacts;
40     private List<GroupInstance> groupInstances;
41     private Map<String, Object> interfaces;
42     private List<PropertyDefinition> properties;
43     private CINodeFilterDataDefinition nodeFilter;
44     private List<InputDefinition> inputs;
45
46     public ComponentInstance() {
47         super();
48     }
49
50     public ComponentInstance(ComponentInstanceDataDefinition r) {
51         super(r);
52     }
53
54     public Map<String, List<CapabilityDefinition>> getCapabilities() {
55         return capabilities;
56     }
57
58     public void setCapabilities(Map<String, List<CapabilityDefinition>> capabilities) {
59         this.capabilities = capabilities;
60     }
61
62     public Map<String, List<RequirementDefinition>> getRequirements() {
63         return requirements;
64     }
65
66     public void setRequirements(Map<String, List<RequirementDefinition>> requirements) {
67         this.requirements = requirements;
68     }
69
70     public Map<String, ArtifactDefinition> getDeploymentArtifacts() {
71         return deploymentArtifacts;
72     }
73
74     public Map<String, ArtifactDefinition> safeGetDeploymentArtifacts() {
75         return deploymentArtifacts == null ? Collections.emptyMap() : deploymentArtifacts;
76     }
77
78     public Map<String, ArtifactDefinition> safeGetInformationalArtifacts() {
79         return artifacts == null ? Collections.emptyMap() : deploymentArtifacts;
80     }
81
82     public void setDeploymentArtifacts(Map<String, ArtifactDefinition> deploymentArtifacts) {
83         this.deploymentArtifacts = deploymentArtifacts;
84     }
85
86     public Map<String, ArtifactDefinition> getArtifacts() {
87         return artifacts;
88     }
89
90     public Map<String, ArtifactDefinition> safeGetArtifacts() {
91         return artifacts == null ? Collections.emptyMap() : artifacts;
92     }
93
94     public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
95         this.artifacts = artifacts;
96     }
97
98     public List<GroupInstance> getGroupInstances() {
99         return groupInstances;
100     }
101
102     public void setGroupInstances(List<GroupInstance> groupInstances) {
103         this.groupInstances = groupInstances;
104     }
105
106     public String getActualComponentUid() {
107         return getIsProxy() ? getSourceModelUid() : getComponentUid();
108     }
109
110     public boolean isArtifactExists(ArtifactGroupTypeEnum groupType, String artifactLabel) {
111         if (ArtifactGroupTypeEnum.DEPLOYMENT == groupType) {
112             return safeGetDeploymentArtifacts().get(artifactLabel) != null;
113         }
114         return safeGetInformationalArtifacts().get(artifactLabel) != null;
115     }
116
117     public Map<String, Object> getInterfaces() {
118         return interfaces;
119     }
120
121     public void setInterfaces(Map<String, Object> interfaces) {
122         this.interfaces = interfaces;
123     }
124
125     public void addInterface(String interfaceName, Object interfaceDefinition) {
126         if(MapUtils.isEmpty(this.interfaces)) {
127             this.interfaces = new HashMap<>();
128         }
129
130         this.interfaces.put(interfaceName, interfaceDefinition);
131     }
132
133     public List<PropertyDefinition> getProperties() {
134         return properties;
135     }
136
137     public void setProperties(List<PropertyDefinition> properties) {
138         this.properties = properties;
139     }
140
141     public CINodeFilterDataDefinition getNodeFilter() {
142         return nodeFilter;
143     }
144
145     public void setNodeFilter(CINodeFilterDataDefinition nodeFilter) {
146         this.nodeFilter = nodeFilter;
147     }
148
149     public List<InputDefinition> getInputs() {
150         return inputs;
151     }
152
153     public void setInputs(List<InputDefinition> inputs) {
154         this.inputs = inputs;
155     }
156 }