e6538bc6cbc88c26c1dd4eda9b524bee92c590bd
[so/adapters/so-cnf-adapter.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2023 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.cnfm.lcm.database.beans;
21
22 import static org.onap.so.cnfm.lcm.database.beans.utils.Utils.toIndentedString;
23 import java.time.LocalDateTime;
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.Objects;
27 import java.util.UUID;
28 import javax.persistence.CascadeType;
29 import javax.persistence.Column;
30 import javax.persistence.Entity;
31 import javax.persistence.EnumType;
32 import javax.persistence.Enumerated;
33 import javax.persistence.FetchType;
34 import javax.persistence.Id;
35 import javax.persistence.OneToMany;
36 import javax.persistence.Table;
37
38 /**
39  * @author Waqas Ikram (waqas.ikram@est.tech)
40  *
41  */
42 @Entity
43 @Table(name = "AS_INST")
44 public class AsInst {
45
46     @Id
47     @Column(name = "AS_INST_ID", nullable = false)
48     private String asInstId;
49
50     @Column(name = "NAME", nullable = false)
51     private String name;
52
53     @Column(name = "DESCRIPTION", columnDefinition = "LONGTEXT")
54     private String description;
55
56     @Column(name = "AS_PACKAGE_ID")
57     private String asPackageId;
58
59     @Column(name = "ASD_ID", nullable = false)
60     private String asdId;
61
62     @Column(name = "ASD_INVARIANT_ID", nullable = false)
63     private String asdInvariantId;
64
65     @Column(name = "AS_PROVIDER", nullable = false)
66     private String asProvider;
67
68     @Column(name = "AS_APPLICATION_NAME", nullable = false)
69     private String asApplicationName;
70
71     @Column(name = "AS_APPLICATION_VERSION", nullable = false)
72     private String asApplicationVersion;
73
74     @Column(name = "SERVICE_INSTANCE_ID", nullable = false)
75     private String serviceInstanceId;
76
77     @Column(name = "SERVICE_INSTANCE_NAME", nullable = false)
78     private String serviceInstanceName;
79
80     @Column(name = "CLOUD_OWNER", nullable = false)
81     private String cloudOwner;
82
83     @Column(name = "CLOUD_REGION", nullable = false)
84     private String cloudRegion;
85
86     @Column(name = "TENANT_ID", nullable = false)
87     private String tenantId;
88
89     @Enumerated(EnumType.STRING)
90     @Column(name = "STATUS", nullable = false)
91     private State status;
92
93     @Column(name = "STATUS_UPDATED_TIME", nullable = false)
94     private LocalDateTime statusUpdatedTime;
95
96     @OneToMany(mappedBy = "asInst", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
97     private List<AsDeploymentItem> asdeploymentItems = new ArrayList<>();
98
99     public AsInst() {
100         this.asInstId = UUID.randomUUID().toString();
101     }
102
103     public String getAsInstId() {
104         return asInstId;
105     }
106
107     public void setAsInstId(final String asInstId) {
108         this.asInstId = asInstId;
109     }
110
111     public AsInst asInstId(final String asInstId) {
112         this.asInstId = asInstId;
113         return this;
114     }
115
116     public String getName() {
117         return name;
118     }
119
120     public void setName(final String name) {
121         this.name = name;
122     }
123
124     public AsInst name(final String name) {
125         this.name = name;
126         return this;
127     }
128
129     public String getDescription() {
130         return description;
131     }
132
133     public void setDescription(final String description) {
134         this.description = description;
135     }
136
137     public AsInst description(final String description) {
138         this.description = description;
139         return this;
140     }
141
142     public String getAsPackageId() {
143         return asPackageId;
144     }
145
146     public void setAsPackageId(final String asPackageId) {
147         this.asPackageId = asPackageId;
148     }
149
150     public AsInst asPackageId(final String asPackageId) {
151         this.asPackageId = asPackageId;
152         return this;
153     }
154
155     public String getAsdId() {
156         return asdId;
157     }
158
159     public void setAsdId(final String asdId) {
160         this.asdId = asdId;
161     }
162
163     public AsInst asdId(final String asdId) {
164         this.asdId = asdId;
165         return this;
166     }
167
168     public String getAsdInvariantId() {
169         return asdInvariantId;
170     }
171
172     public void setAsdInvariantId(final String asdInvariantId) {
173         this.asdInvariantId = asdInvariantId;
174     }
175
176     public AsInst asdInvariantId(final String nsdInvariantId) {
177         this.asdInvariantId = nsdInvariantId;
178         return this;
179     }
180
181     public String getAsProvider() {
182         return asProvider;
183     }
184
185     public void setAsProvider(final String asProvider) {
186         this.asProvider = asProvider;
187     }
188
189     public AsInst asProvider(final String asProvider) {
190         this.asProvider = asProvider;
191         return this;
192     }
193
194     public String getAsApplicationName() {
195         return asApplicationName;
196     }
197
198     public void setAsApplicationName(final String asApplicationName) {
199         this.asApplicationName = asApplicationName;
200     }
201
202     public AsInst asApplicationName(final String asApplicationName) {
203         this.asApplicationName = asApplicationName;
204         return this;
205     }
206
207     public String getAsApplicationVersion() {
208         return asApplicationVersion;
209     }
210
211     public void setAsApplicationVersion(final String asApplicationVersion) {
212         this.asApplicationVersion = asApplicationVersion;
213     }
214
215     public AsInst asApplicationVersion(final String asApplicationVersion) {
216         this.asApplicationVersion = asApplicationVersion;
217         return this;
218     }
219
220     public String getServiceInstanceId() {
221         return serviceInstanceId;
222     }
223
224     public void setServiceInstanceId(final String serviceInstanceId) {
225         this.serviceInstanceId = serviceInstanceId;
226     }
227
228     public AsInst serviceInstanceId(final String serviceInstanceId) {
229         this.serviceInstanceId = serviceInstanceId;
230         return this;
231     }
232
233     public String getServiceInstanceName() {
234         return serviceInstanceName;
235     }
236
237     public void setServiceInstanceName(final String serviceInstanceName) {
238         this.serviceInstanceName = serviceInstanceName;
239     }
240
241     public AsInst serviceInstanceName(final String serviceInstanceName) {
242         this.serviceInstanceName = serviceInstanceName;
243         return this;
244     }
245
246     public String getCloudOwner() {
247         return cloudOwner;
248     }
249
250     public void setCloudOwner(final String cloudOwner) {
251         this.cloudOwner = cloudOwner;
252     }
253
254     public AsInst cloudOwner(final String cloudOwner) {
255         this.cloudOwner = cloudOwner;
256         return this;
257     }
258
259     public String getCloudRegion() {
260         return cloudRegion;
261     }
262
263     public void setCloudRegion(final String cloudRegion) {
264         this.cloudRegion = cloudRegion;
265     }
266
267     public AsInst cloudRegion(final String cloudRegion) {
268         this.cloudRegion = cloudRegion;
269         return this;
270     }
271
272     public String getTenantId() {
273         return tenantId;
274     }
275
276     public void setTenantId(final String tenantId) {
277         this.tenantId = tenantId;
278     }
279
280     public AsInst tenantId(final String tenantId) {
281         this.tenantId = tenantId;
282         return this;
283     }
284
285     public State getStatus() {
286         return status;
287     }
288
289     public void setStatus(final State status) {
290         this.status = status;
291     }
292
293     public AsInst status(final State status) {
294         this.status = status;
295         return this;
296     }
297
298     public LocalDateTime getStatusUpdatedTime() {
299         return statusUpdatedTime;
300     }
301
302     public void setStatusUpdatedTime(final LocalDateTime statusUpdatedTime) {
303         this.statusUpdatedTime = statusUpdatedTime;
304     }
305
306     public AsInst statusUpdatedTime(final LocalDateTime statusUpdatedTime) {
307         this.statusUpdatedTime = statusUpdatedTime;
308         return this;
309     }
310
311     public List<AsDeploymentItem> getAsdeploymentItems() {
312         return asdeploymentItems;
313     }
314
315     public void setAsdeploymentItems(final List<AsDeploymentItem> asdeploymentItems) {
316         this.asdeploymentItems = asdeploymentItems;
317     }
318
319     public AsInst asdeploymentItems(final AsDeploymentItem asdeploymentItem) {
320         asdeploymentItem.asInst(this);
321         this.asdeploymentItems.add(asdeploymentItem);
322         return this;
323     }
324
325     @Override
326     public int hashCode() {
327         return Objects.hash(asInstId, name, description, asPackageId, asdId, asdInvariantId, asProvider,
328                 asApplicationName, asApplicationVersion, serviceInstanceId, serviceInstanceName, cloudOwner,
329                 cloudRegion, tenantId, status, statusUpdatedTime, asdeploymentItems);
330     }
331
332     @Override
333     public boolean equals(final Object obj) {
334         if (this == obj)
335             return true;
336         if (obj == null || getClass() != obj.getClass())
337             return false;
338         if (obj instanceof AsInst) {
339             final AsInst other = (AsInst) obj;
340             return Objects.equals(asInstId, other.asInstId) && Objects.equals(name, other.name)
341                     && Objects.equals(description, other.description) && Objects.equals(asPackageId, other.asPackageId)
342                     && Objects.equals(asdId, other.asdId) && Objects.equals(asdInvariantId, other.asdInvariantId)
343                     && Objects.equals(asProvider, other.asProvider)
344                     && Objects.equals(asApplicationName, other.asApplicationName)
345                     && Objects.equals(asApplicationVersion, other.asApplicationVersion)
346                     && Objects.equals(serviceInstanceId, other.serviceInstanceId)
347                     && Objects.equals(serviceInstanceName, other.serviceInstanceName)
348                     && Objects.equals(cloudOwner, other.cloudOwner) && Objects.equals(cloudRegion, other.cloudRegion)
349                     && Objects.equals(tenantId, other.tenantId) && Objects.equals(status, other.status)
350                     && Objects.equals(statusUpdatedTime, other.statusUpdatedTime)
351                     && Objects.equals(asdeploymentItems, other.asdeploymentItems);
352         }
353         return false;
354     }
355
356     @Override
357     public String toString() {
358         final StringBuilder sb = new StringBuilder();
359         sb.append("class AsInst {\n");
360         sb.append("    asInstId: ").append(toIndentedString(asInstId)).append("\n");
361         sb.append("    name: ").append(toIndentedString(name)).append("\n");
362         sb.append("    description: ").append(toIndentedString(description)).append("\n");
363         sb.append("    asPackageId: ").append(toIndentedString(asPackageId)).append("\n");
364         sb.append("    asdId: ").append(toIndentedString(asdId)).append("\n");
365         sb.append("    asProvider: ").append(toIndentedString(asProvider)).append("\n");
366         sb.append("    asApplicationName: ").append(toIndentedString(asApplicationName)).append("\n");
367         sb.append("    asApplicationVersion: ").append(toIndentedString(asApplicationVersion)).append("\n");
368         sb.append("    serviceInstanceId: ").append(toIndentedString(serviceInstanceId)).append("\n");
369         sb.append("    serviceInstanceName: ").append(toIndentedString(serviceInstanceName)).append("\n");
370         sb.append("    cloudOwner: ").append(toIndentedString(cloudOwner)).append("\n");
371         sb.append("    cloudRegion: ").append(toIndentedString(cloudRegion)).append("\n");
372         sb.append("    tenantId: ").append(toIndentedString(tenantId)).append("\n");
373         sb.append("    status: ").append(toIndentedString(status)).append("\n");
374         sb.append("    statusUpdatedTime: ").append(toIndentedString(statusUpdatedTime)).append("\n");
375         sb.append("    asdeploymentItems: ").append(toIndentedString(asdeploymentItems)).append("\n");
376
377         sb.append("}");
378         return sb.toString();
379     }
380
381 }