c75199ed4157c8e97bb68bd94a99efc9e8ed2929
[so.git] / mso-catalog-db / src / main / java / org / onap / so / db / catalog / beans / VnfResourceCustomization.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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.onap.so.db.catalog.beans;
22
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Date;
26 import java.util.HashSet;
27 import java.util.List;
28 import java.util.Set;
29
30 import javax.persistence.CascadeType;
31 import javax.persistence.Column;
32 import javax.persistence.Entity;
33 import javax.persistence.FetchType;
34 import javax.persistence.Id;
35 import javax.persistence.JoinColumn;
36 import javax.persistence.JoinTable;
37 import javax.persistence.ManyToOne;
38 import javax.persistence.OneToMany;
39 import javax.persistence.PrePersist;
40 import javax.persistence.Table;
41 import javax.persistence.Temporal;
42 import javax.persistence.TemporalType;
43
44 import org.apache.commons.lang3.builder.EqualsBuilder;
45 import org.apache.commons.lang3.builder.HashCodeBuilder;
46 import org.apache.commons.lang3.builder.ToStringBuilder;
47
48 import com.fasterxml.jackson.annotation.JsonFormat;
49 import com.openpojo.business.annotation.BusinessKey;
50
51 import uk.co.blackpepper.bowman.annotation.LinkedResource;
52
53 @Entity
54 @Table(name = "vnf_resource_customization")
55 public class VnfResourceCustomization implements Serializable {
56
57     private static final long serialVersionUID = 768026109321305392L;
58
59     @BusinessKey
60     @Id
61     @Column(name = "MODEL_CUSTOMIZATION_UUID")
62     private String modelCustomizationUUID;
63
64     @Column(name = "MODEL_INSTANCE_NAME")
65     private String modelInstanceName;
66
67     @Column(name = "CREATION_TIMESTAMP", updatable = false)
68     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
69     @Temporal(TemporalType.TIMESTAMP)
70     private Date created;
71
72     public void setCreated(Date created) {
73         this.created = created;
74     }
75
76     @Column(name = "MIN_INSTANCES")
77     private Integer minInstances;
78
79     @Column(name = "MAX_INSTANCES")
80     private Integer maxInstances;
81
82     @Column(name = "AVAILABILITY_ZONE_MAX_COUNT")
83     private Integer availabilityZoneMaxCount;
84
85     @Column(name = "NF_FUNCTION")
86     private String nfFunction;
87
88     @Column(name = "NF_TYPE")
89     private String nfType;
90
91     @Column(name = "NF_ROLE")
92     private String nfRole;
93
94     @Column(name = "NF_NAMING_CODE")
95     private String nfNamingCode;
96
97     @Column(name = "MULTI_STAGE_DESIGN")
98     private String multiStageDesign;
99
100     @Column(name = "RESOURCE_INPUT")
101     private String resourceInput;
102
103     @ManyToOne(cascade = CascadeType.ALL)
104     @JoinColumn(name = "VNF_RESOURCE_MODEL_UUID")
105     private VnfResource vnfResources;
106
107     @OneToMany(cascade = CascadeType.ALL)
108     @JoinTable(name = "vnf_res_custom_to_vf_module_custom", joinColumns = @JoinColumn(name = "VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID", referencedColumnName = "MODEL_CUSTOMIZATION_UUID"), inverseJoinColumns = @JoinColumn(name = "VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID", referencedColumnName = "MODEL_CUSTOMIZATION_UUID"))
109     private List<VfModuleCustomization> vfModuleCustomizations;
110
111     @OneToMany(fetch = FetchType.LAZY, mappedBy = "vnfResourceCust")
112     private List<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizations;
113
114     @OneToMany(cascade = CascadeType.ALL, mappedBy = "modelCustomizationUUID")
115     private Set<VnfVfmoduleCvnfcConfigurationCustomization> vnfVfmoduleCvnfcConfigurationCustomization;
116
117     @OneToMany(cascade = CascadeType.ALL, mappedBy = "modelCustomizationUUID")
118     private List<CvnfcCustomization> cvnfcCustomization;
119
120     @Column(name = "CDS_BLUEPRINT_NAME")
121     private String blueprintName;
122
123     @Column(name = "CDS_BLUEPRINT_VERSION")
124     private String blueprintVersion;
125
126     @Override
127     public String toString() {
128         return new ToStringBuilder(this).append("modelCustomizationUUID", modelCustomizationUUID)
129             .append("modelInstanceName", modelInstanceName).append("created", created)
130             .append("minInstances", minInstances).append("maxInstances", maxInstances)
131             .append("availabilityZoneMaxCount", availabilityZoneMaxCount).append("nfFunction", nfFunction)
132             .append("nfType", nfType).append("nfRole", nfRole).append("nfNamingCode", nfNamingCode)
133             .append("multiStageDesign", multiStageDesign).append("vnfResources", vnfResources)
134             .append("vfModuleCustomizations", vfModuleCustomizations)
135             .append("vnfcInstanceGroupCustomizations", vnfcInstanceGroupCustomizations).toString();
136     }
137
138     @Override
139     public boolean equals(final Object other) {
140         if (!(other instanceof VnfResourceCustomization)) {
141             return false;
142         }
143         VnfResourceCustomization castOther = (VnfResourceCustomization) other;
144         return new EqualsBuilder().append(modelCustomizationUUID, castOther.modelCustomizationUUID).isEquals();
145     }
146
147     @Override
148     public int hashCode() {
149         return new HashCodeBuilder().append(modelCustomizationUUID).toHashCode();
150     }
151
152     @PrePersist
153     protected void onCreate() {
154         this.created = new Date();
155     }
156
157     public String getModelCustomizationUUID() {
158         return modelCustomizationUUID;
159     }
160
161     public void setModelCustomizationUUID(String modelCustomizationUUID) {
162         this.modelCustomizationUUID = modelCustomizationUUID;
163     }
164
165     public String getModelInstanceName() {
166         return this.modelInstanceName;
167     }
168
169     public void setModelInstanceName(String modelInstanceName) {
170         this.modelInstanceName = modelInstanceName;
171     }
172
173     public Date getCreationTimestamp() {
174         return this.created;
175     }
176
177     public Integer getMinInstances() {
178         return this.minInstances;
179     }
180
181     public void setMinInstances(Integer minInstances) {
182         this.minInstances = minInstances;
183     }
184
185     public Integer getMaxInstances() {
186         return this.maxInstances;
187     }
188
189     public void setMaxInstances(Integer maxInstances) {
190         this.maxInstances = maxInstances;
191     }
192
193     public Integer getAvailabilityZoneMaxCount() {
194         return this.availabilityZoneMaxCount;
195     }
196
197     public void setAvailabilityZoneMaxCount(Integer availabilityZoneMaxCount) {
198         this.availabilityZoneMaxCount = availabilityZoneMaxCount;
199     }
200
201     public String getNfFunction() {
202         return nfFunction;
203     }
204
205     public void setNfFunction(String nfFunction) {
206         this.nfFunction = nfFunction;
207     }
208
209     public String getNfType() {
210         return nfType;
211     }
212
213     public void setNfType(String nfType) {
214         this.nfType = nfType;
215     }
216
217     public String getNfRole() {
218         return nfRole;
219     }
220
221     public void setNfRole(String nfRole) {
222         this.nfRole = nfRole;
223     }
224
225     public String getNfNamingCode() {
226         return nfNamingCode;
227     }
228
229     public void setNfNamingCode(String nfNamingCode) {
230         this.nfNamingCode = nfNamingCode;
231     }
232
233     public String getMultiStageDesign() {
234         return this.multiStageDesign;
235     }
236
237     public void setMultiStageDesign(String multiStageDesign) {
238         this.multiStageDesign = multiStageDesign;
239     }
240
241     @LinkedResource
242     public List<VfModuleCustomization> getVfModuleCustomizations() {
243         if (vfModuleCustomizations == null) {
244             vfModuleCustomizations = new ArrayList<>();
245         }
246         return vfModuleCustomizations;
247     }
248
249     public void setVfModuleCustomizations(List<VfModuleCustomization> vfModuleCustomizations) {
250         this.vfModuleCustomizations = vfModuleCustomizations;
251     }
252
253     @LinkedResource
254     public VnfResource getVnfResources() {
255         return vnfResources;
256     }
257
258     public void setVnfResources(VnfResource vnfResources) {
259         this.vnfResources = vnfResources;
260     }
261
262     public Date getCreated() {
263         return created;
264     }
265
266     @LinkedResource
267     public List<VnfcInstanceGroupCustomization> getVnfcInstanceGroupCustomizations() {
268         return vnfcInstanceGroupCustomizations;
269     }
270
271     public void setVnfcInstanceGroupCustomizations(
272         List<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizations) {
273         this.vnfcInstanceGroupCustomizations = vnfcInstanceGroupCustomizations;
274     }
275
276     @LinkedResource
277     public Set<VnfVfmoduleCvnfcConfigurationCustomization> getVnfVfmoduleCvnfcConfigurationCustomization() {
278         if (vnfVfmoduleCvnfcConfigurationCustomization == null) {
279             vnfVfmoduleCvnfcConfigurationCustomization = new HashSet<>();
280         }
281         return vnfVfmoduleCvnfcConfigurationCustomization;
282     }
283
284     public void setVnfVfmoduleCvnfcConfigurationCustomization(
285         Set<VnfVfmoduleCvnfcConfigurationCustomization> vnfVfmoduleCvnfcConfigurationCustomization) {
286         this.vnfVfmoduleCvnfcConfigurationCustomization = vnfVfmoduleCvnfcConfigurationCustomization;
287     }
288
289     @LinkedResource
290     public List<CvnfcCustomization> getCvnfcCustomization() {
291         return cvnfcCustomization;
292     }
293
294     public void setCvnfcCustomization(List<CvnfcCustomization> cvnfcCustomization) {
295         this.cvnfcCustomization = cvnfcCustomization;
296     }
297
298     public String getResourceInput() {
299         return resourceInput;
300     }
301
302     public void setResourceInput(String resourceInput) {
303         this.resourceInput = resourceInput;
304     }
305
306
307     public String getBlueprintName() {
308         return blueprintName;
309     }
310
311     public void setBlueprintName(String blueprintName) {
312         this.blueprintName = blueprintName;
313     }
314
315     public String getBlueprintVersion() {
316         return blueprintVersion;
317     }
318
319     public void setBlueprintVersion(String blueprintVersion) {
320         this.blueprintVersion = blueprintVersion;
321     }
322
323 }