Merge "Removing so-monitoring module"
[so.git] / so-etsi-nfvo / so-etsi-nfvo-ns-lcm / so-etsi-nfvo-ns-lcm-database-service / src / main / java / org / onap / so / etsi / nfvo / ns / lcm / database / beans / NfvoNsInst.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2020 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.so.etsi.nfvo.ns.lcm.database.beans;
21
22 import javax.persistence.CascadeType;
23 import javax.persistence.Column;
24 import javax.persistence.Entity;
25 import javax.persistence.EnumType;
26 import javax.persistence.Enumerated;
27 import javax.persistence.FetchType;
28 import javax.persistence.Id;
29 import javax.persistence.OneToMany;
30 import javax.persistence.Table;
31 import java.time.LocalDateTime;
32 import java.util.ArrayList;
33 import java.util.List;
34 import java.util.Objects;
35 import java.util.UUID;
36 import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString;
37
38 /**
39  * @author Waqas Ikram (waqas.ikram@est.tech)
40  *
41  */
42 @Entity
43 @Table(name = "NS_INST")
44 public class NfvoNsInst {
45
46     @Id
47     @Column(name = "NS_INST_ID", nullable = false)
48     private String nsInstId;
49
50     @Column(name = "NAME", nullable = false)
51     private String name;
52
53     @Column(name = "NS_PACKAGE_ID")
54     private String nsPackageId;
55
56     @Column(name = "NSD_ID", nullable = false)
57     private String nsdId;
58
59     @Column(name = "NSD_INVARIANT_ID", nullable = false)
60     private String nsdInvariantId;
61
62     @Column(name = "DESCRIPTION", columnDefinition = "LONGTEXT")
63     private String description;
64
65     @Enumerated(EnumType.STRING)
66     @Column(name = "STATUS", nullable = false)
67     private State status;
68
69     @Column(name = "STATUS_UPDATED_TIME", nullable = false)
70     private LocalDateTime statusUpdatedTime;
71
72     @Column(name = "GLOBAL_CUSTOMER_ID")
73     private String globalCustomerId;
74
75     @Column(name = "SERVICE_TYPE")
76     private String serviceType;
77
78     @OneToMany(mappedBy = "nsInst", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
79     private List<NfvoNfInst> nfvoNfInsts = new ArrayList<>();
80
81     @OneToMany(mappedBy = "nfvoNsInst", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
82     private List<NsLcmOpOcc> nsLcmOpOccs = new ArrayList<>();
83
84     public NfvoNsInst() {
85         this.nsInstId = UUID.randomUUID().toString();
86     }
87
88     public String getNsInstId() {
89         return nsInstId;
90     }
91
92     public void setNsInstId(final String nsInstId) {
93         this.nsInstId = nsInstId;
94     }
95
96     public NfvoNsInst nsInstId(final String nsInstId) {
97         this.nsInstId = nsInstId;
98         return this;
99     }
100
101     public String getName() {
102         return name;
103     }
104
105     public void setName(final String name) {
106         this.name = name;
107     }
108
109     public NfvoNsInst name(final String name) {
110         this.name = name;
111         return this;
112     }
113
114     public String getNsPackageId() {
115         return nsPackageId;
116     }
117
118     public void setNsPackageId(final String nsPackageId) {
119         this.nsPackageId = nsPackageId;
120     }
121
122     public NfvoNsInst nsPackageId(final String nsPackageId) {
123         this.nsPackageId = nsPackageId;
124         return this;
125     }
126
127     public String getNsdId() {
128         return nsdId;
129     }
130
131     public void setNsdId(final String nsdId) {
132         this.nsdId = nsdId;
133     }
134
135     public NfvoNsInst nsdId(final String nsdId) {
136         this.nsdId = nsdId;
137         return this;
138     }
139
140     public String getNsdInvariantId() {
141         return nsdInvariantId;
142     }
143
144     public void setNsdInvariantId(final String nsdInvariantId) {
145         this.nsdInvariantId = nsdInvariantId;
146     }
147
148     public NfvoNsInst nsdInvariantId(final String nsdInvariantId) {
149         this.nsdInvariantId = nsdInvariantId;
150         return this;
151     }
152
153     public String getDescription() {
154         return description;
155     }
156
157     public void setDescription(final String description) {
158         this.description = description;
159     }
160
161     public NfvoNsInst description(final String description) {
162         this.description = description;
163         return this;
164     }
165
166     public State getStatus() {
167         return status;
168     }
169
170     public void setStatus(final State status) {
171         this.status = status;
172     }
173
174     public NfvoNsInst status(final State status) {
175         this.status = status;
176         return this;
177     }
178
179     public LocalDateTime getStatusUpdatedTime() {
180         return statusUpdatedTime;
181     }
182
183     public void setStatusUpdatedTime(final LocalDateTime statusUpdatedTime) {
184         this.statusUpdatedTime = statusUpdatedTime;
185     }
186
187     public NfvoNsInst statusUpdatedTime(final LocalDateTime statusUpdatedTime) {
188         this.statusUpdatedTime = statusUpdatedTime;
189         return this;
190     }
191
192     public String getGlobalCustomerId() {
193         return globalCustomerId;
194     }
195
196     public void setGlobalCustomerId(final String globalCustomerId) {
197         this.globalCustomerId = globalCustomerId;
198     }
199
200     public NfvoNsInst globalCustomerId(final String globalCustomerId) {
201         this.globalCustomerId = globalCustomerId;
202         return this;
203     }
204
205     public String getServiceType() {
206         return serviceType;
207     }
208
209     public void setServiceType(final String serviceType) {
210         this.serviceType = serviceType;
211     }
212
213     public NfvoNsInst serviceType(final String serviceType) {
214         this.serviceType = serviceType;
215         return this;
216     }
217
218     public List<NfvoNfInst> getNfvoNfInsts() {
219         return nfvoNfInsts;
220     }
221
222     public void setNfvoNfInsts(final List<NfvoNfInst> nfvoNfInsts) {
223         this.nfvoNfInsts = nfvoNfInsts;
224     }
225
226     public NfvoNsInst nfvoNfInsts(final NfvoNfInst nfvoNfInsts) {
227         nfvoNfInsts.nfvoNsInst(this);
228         this.nfvoNfInsts.add(nfvoNfInsts);
229         return this;
230     }
231
232     public List<NsLcmOpOcc> getNsLcmOpOccs() {
233         return nsLcmOpOccs;
234     }
235
236     public void setNsLcmOpOccs(final List<NsLcmOpOcc> nsLcmOpOccs) {
237         this.nsLcmOpOccs = nsLcmOpOccs;
238     }
239
240     public NfvoNsInst nsLcmOpOccs(final NsLcmOpOcc nsLcmOpOcc) {
241         nsLcmOpOcc.nfvoNsInst(this);
242         this.nsLcmOpOccs.add(nsLcmOpOcc);
243         return this;
244     }
245
246     @Override
247     public int hashCode() {
248         return Objects.hash(nsInstId, name, nsPackageId, nsdId, nsdInvariantId, description, status, statusUpdatedTime,
249                 globalCustomerId, serviceType, nfvoNfInsts, nsLcmOpOccs);
250     }
251
252     @Override
253     public boolean equals(final Object obj) {
254         if (this == obj)
255             return true;
256         if (obj == null || getClass() != obj.getClass())
257             return false;
258         if (obj instanceof NfvoNsInst) {
259             final NfvoNsInst other = (NfvoNsInst) obj;
260             return Objects.equals(nsInstId, other.nsInstId) && Objects.equals(name, other.name)
261                     && Objects.equals(nsPackageId, other.nsPackageId) && Objects.equals(nsdId, other.nsdId)
262                     && Objects.equals(nsdInvariantId, other.nsdInvariantId)
263                     && Objects.equals(description, other.description) && Objects.equals(status, other.status)
264                     && Objects.equals(statusUpdatedTime, other.statusUpdatedTime)
265                     && Objects.equals(globalCustomerId, other.globalCustomerId)
266                     && Objects.equals(serviceType, other.serviceType) && Objects.equals(nfvoNfInsts, other.nfvoNfInsts)
267                     && Objects.equals(nsLcmOpOccs, other.nsLcmOpOccs);
268         }
269         return false;
270     }
271
272     @Override
273     public String toString() {
274         final StringBuilder sb = new StringBuilder();
275         sb.append("class NfvoNsInst {\n");
276         sb.append("    nsInstId: ").append(toIndentedString(nsInstId)).append("\n");
277         sb.append("    name: ").append(toIndentedString(name)).append("\n");
278         sb.append("    nsPackageId: ").append(toIndentedString(nsPackageId)).append("\n");
279         sb.append("    nsdId: ").append(toIndentedString(nsdId)).append("\n");
280         sb.append("    nsdInvariantId: ").append(toIndentedString(nsdInvariantId)).append("\n");
281         sb.append("    description: ").append(toIndentedString(description)).append("\n");
282         sb.append("    status: ").append(toIndentedString(status)).append("\n");
283         sb.append("    statusUpdatedTime: ").append(toIndentedString(statusUpdatedTime)).append("\n");
284         sb.append("    globalCustomerId: ").append(toIndentedString(globalCustomerId)).append("\n");
285         sb.append("    serviceType: ").append(toIndentedString(serviceType)).append("\n");
286         sb.append("    nfvoNfInsts: ").append(toIndentedString(nfvoNfInsts)).append("\n");
287         sb.append("    nsLcmOpOccs: ").append(toIndentedString(nsLcmOpOccs)).append("\n");
288
289         sb.append("}");
290         return sb.toString();
291     }
292
293 }