a7bbb9fb01776917d12918f904eb2e688049c993
[so.git] / mso-catalog-db / src / main / java / org / onap / so / db / catalog / beans / CvnfcCustomization.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.Date;
25 import java.util.Set;
26
27 import javax.persistence.CascadeType;
28 import javax.persistence.Column;
29 import javax.persistence.Entity;
30 import javax.persistence.FetchType;
31 import javax.persistence.GeneratedValue;
32 import javax.persistence.GenerationType;
33 import javax.persistence.Id;
34 import javax.persistence.JoinColumn;
35 import javax.persistence.ManyToOne;
36 import javax.persistence.OneToMany;
37 import javax.persistence.PrePersist;
38 import javax.persistence.Table;
39 import javax.persistence.Temporal;
40 import javax.persistence.TemporalType;
41
42 import org.apache.commons.lang3.builder.EqualsBuilder;
43 import org.apache.commons.lang3.builder.HashCodeBuilder;
44 import org.apache.commons.lang3.builder.ToStringBuilder;
45
46 import com.fasterxml.jackson.annotation.JsonFormat;
47 import com.openpojo.business.annotation.BusinessKey;
48
49 import uk.co.blackpepper.bowman.annotation.LinkedResource;
50
51 @Entity
52 @Table(name = "cvnfc_customization")
53 public class CvnfcCustomization implements Serializable {
54
55         private static final long serialVersionUID = -3772469944364616486L;
56
57         @Id
58         @Column(name = "ID")
59         @BusinessKey
60         @GeneratedValue(strategy = GenerationType.IDENTITY)
61         private Integer id;
62         
63         @Column(name = "MODEL_CUSTOMIZATION_UUID")
64         private String modelCustomizationUUID;
65         
66         @Column(name = "MODEL_INSTANCE_NAME")
67         private String modelInstanceName;
68         
69         @Column(name = "MODEL_UUID")
70         private String modelUUID;
71         
72         @Column(name = "MODEL_INVARIANT_UUID")
73         private String modelInvariantUUID;      
74         
75         @Column(name = "MODEL_VERSION")
76         private String modelVersion;
77         
78         @Column(name = "MODEL_NAME")
79         private String modelName;
80         
81         @Column(name = "TOSCA_NODE_TYPE")
82         private String toscaNodeType;
83         
84         @Column(name = "DESCRIPTION")
85         private String description;
86         
87         @Column(name = "NFC_FUNCTION")
88         private String nfcFunction;
89         
90         @Column(name = "NFC_NAMING_CODE")
91         private String nfcNamingCode;
92         
93         @Column(name = "CREATION_TIMESTAMP", updatable = false)
94         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
95         @Temporal(TemporalType.TIMESTAMP)
96         private Date created;
97         
98         @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
99         @JoinColumn(name = "VF_MODULE_CUSTOMIZATION_ID")
100         private VfModuleCustomization vfModuleCustomization;
101         
102         @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
103         @JoinColumn(name = "VNFC_CUST_MODEL_CUSTOMIZATION_UUID")
104         private VnfcCustomization vnfcCustomization;
105         
106         @OneToMany(cascade = CascadeType.ALL, mappedBy = "cvnfcCustomization")
107         private Set<CvnfcConfigurationCustomization> cvnfcConfigurationCustomization;
108
109         @Override
110         public boolean equals(final Object other) {
111                 if (!(other instanceof CvnfcCustomization)) {
112                         return false;
113                 }
114                 CvnfcCustomization castOther = (CvnfcCustomization) other;
115                 return new EqualsBuilder().append(id, castOther.id).isEquals();
116         }
117
118         @Override
119         public int hashCode() {
120                 return new HashCodeBuilder().append(id).toHashCode();
121         }
122
123         @Override
124         public String toString() {
125                 return new ToStringBuilder(this).append("id", id).append("modelCustomizationUUID", modelCustomizationUUID)
126                                 .append("modelInstanceName", modelInstanceName).append("modelUUID", modelUUID)
127                                 .append("modelInvariantUUID", modelInvariantUUID).append("modelVersion", modelVersion)
128                                 .append("modelName", modelName).append("toscaNodeType", toscaNodeType)
129                                 .append("description", description).append("nfcFunction", nfcFunction)
130                                 .append("nfcNamingCode", nfcNamingCode).append("created", created)
131                                 .append("vnfVfmoduleCvnfcConfigurationCustomization", cvnfcConfigurationCustomization)
132                                 .toString();
133         }
134
135         @LinkedResource
136         public VnfcCustomization getVnfcCustomization() {
137                 return vnfcCustomization;
138         }
139
140         public void setVnfcCustomization(VnfcCustomization vnfcCustomization) {
141                 this.vnfcCustomization = vnfcCustomization;
142         }
143
144         @PrePersist
145         protected void onCreate() {
146                 this.created = new Date();
147         }
148         
149         @LinkedResource
150         public Set<CvnfcConfigurationCustomization> getCvnfcConfigurationCustomization() {
151                 return cvnfcConfigurationCustomization;
152         }
153
154         public void setCvnfcConfigurationCustomization(Set<CvnfcConfigurationCustomization> cvnfcConfigurationCustomization) {
155                 this.cvnfcConfigurationCustomization = cvnfcConfigurationCustomization;
156         }
157
158         public Integer getId() {
159                 return id;
160         }
161
162         public void setId(Integer id) {
163                 this.id = id;
164         }
165
166         public String getModelCustomizationUUID() {
167                 return modelCustomizationUUID;
168         }
169
170         public void setModelCustomizationUUID(String modelCustomizationUUID) {
171                 this.modelCustomizationUUID = modelCustomizationUUID;
172         }
173
174         public String getModelInstanceName() {
175                 return modelInstanceName;
176         }
177
178         public void setModelInstanceName(String modelInstanceName) {
179                 this.modelInstanceName = modelInstanceName;
180         }
181
182         public String getModelUUID() {
183                 return modelUUID;
184         }
185
186         public void setModelUUID(String modelUUID) {
187                 this.modelUUID = modelUUID;
188         }
189
190         public String getModelInvariantUUID() {
191                 return modelInvariantUUID;
192         }
193
194         public void setModelInvariantUUID(String modelInvariantUUID) {
195                 this.modelInvariantUUID = modelInvariantUUID;
196         }
197
198         public String getModelVersion() {
199                 return modelVersion;
200         }
201
202         public void setModelVersion(String modelVersion) {
203                 this.modelVersion = modelVersion;
204         }
205
206         public String getModelName() {
207                 return modelName;
208         }
209
210         public void setModelName(String modelName) {
211                 this.modelName = modelName;
212         }
213
214         public String getToscaNodeType() {
215                 return toscaNodeType;
216         }
217
218         public void setToscaNodeType(String toscaNodeType) {
219                 this.toscaNodeType = toscaNodeType;
220         }
221
222         public String getDescription() {
223                 return description;
224         }
225
226         public void setDescription(String description) {
227                 this.description = description;
228         }
229
230         public String getNfcFunction() {
231                 return nfcFunction;
232         }
233
234         public void setNfcFunction(String nfcFunction) {
235                 this.nfcFunction = nfcFunction;
236         }
237
238         public String getNfcNamingCode() {
239                 return nfcNamingCode;
240         }
241
242         public void setNfcNamingCode(String nfcNamingCode) {
243                 this.nfcNamingCode = nfcNamingCode;
244         }
245
246         public Date getCreated() {
247                 return created;
248         }
249
250         public void setCreated(Date created) {
251                 this.created = created;
252         }
253
254         @LinkedResource
255         public VfModuleCustomization getVfModuleCustomization() {
256                 return vfModuleCustomization;
257         }
258
259         public void setVfModuleCustomization(VfModuleCustomization vfModuleCustomization) {
260                 this.vfModuleCustomization = vfModuleCustomization;
261         }
262
263 }