Merge "Merge from ECOMP's repository"
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / ServiceInfo.java
1  package org.onap.vid.model;
2
3
4  import com.fasterxml.jackson.annotation.JsonProperty;
5  import org.hibernate.annotations.DynamicUpdate;
6  import org.hibernate.annotations.SelectBeforeUpdate;
7  import org.hibernate.annotations.Type;
8  import org.onap.portalsdk.core.domain.support.DomainVo;
9  import org.onap.vid.job.Job;
10
11  import javax.persistence.*;
12  import java.io.Serializable;
13  import java.util.Date;
14  import java.util.Objects;
15  import java.util.Set;
16  import java.util.UUID;
17
18 /*
19  The following 2 annotations let hibernate to update only fields that actually have been changed.
20  DynamicUpdate tell hibernate to update only dirty fields.
21  SelectBeforeUpdate is needed since during update the entity is detached (get and update are in different sessions)
22 */
23 @DynamicUpdate()
24 @SelectBeforeUpdate()
25 @Entity
26 @Table(name = "vid_service_info")
27 public class ServiceInfo extends DomainVo {
28
29     public enum ServiceAction {
30         INSTANTIATE,
31         DELETE,
32         UPDATE
33     }
34
35     public void setUserId(String userId) {
36         this.userId = userId;
37     }
38
39     private UUID jobId;
40     private UUID templateId;
41     private String userId;
42     private UUID msoRequestId;
43     private boolean aLaCarte;
44     private Job.JobStatus jobStatus;
45     private Date statusModifiedDate;
46     private boolean hidden;
47     private boolean pause;
48     private Date deletedAt;
49     private String owningEntityId;
50     private String owningEntityName;
51     private String project;
52     private String aicZoneId;
53     private String aicZoneName;
54     private String tenantId;
55     private String tenantName;
56     private String regionId;
57     private String regionName;
58     private String serviceType;
59     private String subscriberName;
60     private String subscriberId;
61     private String serviceInstanceId;
62     private String serviceInstanceName;
63     private String serviceModelId;
64     private String serviceModelName;
65     private String serviceModelVersion;
66     private Date createdBulkDate;
67     private ServiceAction action;
68
69     public ServiceInfo(){
70
71     }
72
73     public ServiceInfo(String userId, Boolean aLaCarte, Job.JobStatus jobStatus, boolean pause, UUID jobId, UUID templateId, String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName, String tenantId, String tenantName, String regionId, String regionName, String serviceType, String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName, String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate, ServiceAction action) {
74         this.userId = userId;
75         this.aLaCarte = aLaCarte;
76         this.jobStatus = jobStatus;
77         this.jobId = jobId;
78         this.templateId = templateId;
79         this.pause = pause;
80         this.owningEntityId = owningEntityId;
81         this.owningEntityName = owningEntityName;
82         this.project = project;
83         this.aicZoneId = aicZoneId;
84         this.aicZoneName = aicZoneName;
85         this.tenantId = tenantId;
86         this.tenantName = tenantName;
87         this.regionId = regionId;
88         this.regionName = regionName;
89         this.serviceType = serviceType;
90         this.subscriberName = subscriberName;
91         this.subscriberId = subscriberId;
92         this.serviceInstanceId = serviceInstanceId;
93         this.serviceInstanceName = serviceInstanceName;
94         this.serviceModelId = serviceModelId;
95         this.serviceModelName = serviceModelName;
96         this.serviceModelVersion = serviceModelVersion;
97         this.createdBulkDate = createdBulkDate;
98         this.action = action;
99     }
100
101     @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
102     @Type(type="org.hibernate.type.UUIDCharType")
103     public UUID getJobId() {
104         return jobId;
105     }
106
107     @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
108     @Type(type="org.hibernate.type.UUIDCharType")
109     public UUID getTemplateId() {
110         return templateId;
111     }
112
113     @Column(name="USER_ID")
114     public String getUserId() {
115         return userId;
116     }
117
118     @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
119     @Type(type="org.hibernate.type.UUIDCharType")
120     public UUID getMsoRequestId() {
121         return msoRequestId;
122     }
123
124     @Column(name="IS_A_LA_CARTE")
125     @JsonProperty("aLaCarte")
126     public boolean isALaCarte() {
127         return aLaCarte;
128     }
129
130     @Column(name="JOB_STATUS")
131     @Enumerated(EnumType.STRING)
132     public Job.JobStatus getJobStatus() {
133         return jobStatus;
134     }
135
136     @Column(name="STATUS_MODIFIED_DATE")
137     public Date getStatusModifiedDate() {
138         return statusModifiedDate;
139     }
140
141     @Column(name="IS_HIDDEN")
142     public boolean isHidden() {
143         return hidden;
144     }
145
146     @Column(name="IS_PAUSE")
147     public boolean isPause() {
148         return pause;
149     }
150
151     @Column(name="OWNING_ENTITY_ID")
152     public String getOwningEntityId() {
153         return owningEntityId;
154     }
155
156     @Column(name="OWNING_ENTITY_NAME")
157     public String getOwningEntityName() {
158         return owningEntityName;
159     }
160
161     @Column(name="PROJECT")
162     public String getProject() {
163         return project;
164     }
165
166     @Column(name="AIC_ZONE_ID")
167     public String getAicZoneId() {
168         return aicZoneId;
169     }
170
171     @Column(name="AIC_ZONE_NAME")
172     public String getAicZoneName() {
173         return aicZoneName;
174     }
175
176     @Column(name="TENANT_ID")
177     public String getTenantId() {
178         return tenantId;
179     }
180
181     @Column(name="TENANT_NAME")
182     public String getTenantName() {
183         return tenantName;
184     }
185
186     @Column(name="REGION_ID")
187     public String getRegionId() {
188         return regionId;
189     }
190
191     @Column(name="REGION_NAME")
192     public String getRegionName() {
193         return regionName;
194     }
195
196     @Column(name="SERVICE_TYPE")
197     public String getServiceType() {
198         return serviceType;
199     }
200
201     @Column(name="SUBSCRIBER_NAME")
202     public String getSubscriberName() {
203         return subscriberName;
204     }
205
206     @Column(name="SUBSCRIBER_ID")
207     public String getSubscriberId() {
208         return subscriberId;
209     }
210
211     @Column(name="SERVICE_INSTANCE_ID")
212     public String getServiceInstanceId() {
213         return serviceInstanceId;
214     }
215
216     @Column(name="SERVICE_INSTANCE_NAME")
217     public String getServiceInstanceName() {
218         return serviceInstanceName;
219     }
220
221     @Column(name="SERVICE_MODEL_ID")
222     public String getServiceModelId() {
223         return serviceModelId;
224     }
225
226     @Column(name="SERVICE_MODEL_NAME")
227     public String getServiceModelName() {
228         return serviceModelName;
229     }
230
231     @Column(name="SERVICE_MODEL_VERSION")
232     public String getServiceModelVersion() {
233         return serviceModelVersion;
234     }
235
236     @Column(name="CREATED_BULK_DATE")
237     public Date getCreatedBulkDate() {
238         return createdBulkDate;
239     }
240
241     @Column(name="DELETED_AT")
242     public Date getDeletedAt() {
243          return deletedAt;
244      }
245
246     @Column(name="ACTION")
247     @Enumerated(EnumType.STRING)
248     public ServiceAction getAction() {
249         return action;
250     }
251
252     @Id
253     @GeneratedValue(strategy = GenerationType.IDENTITY)
254     @Override
255     @Column(name = "ID", columnDefinition = "INT(11)")
256     public Long getId() {
257         return this.id;
258     }
259
260     @Override
261     @Column(name = "CREATED_DATE")
262     public Date getCreated() {
263         return super.getCreated();
264     }
265
266     @Override
267     @Column(name = "MODIFIED_DATE")
268     public Date getModified() {
269         return super.getModified();
270     }
271
272     @Override
273     @Transient
274     public Long getCreatedId() {
275         return super.getCreatedId();
276     }
277
278     @Override
279     @Transient
280     public Long getModifiedId() {
281         return super.getModifiedId();
282     }
283
284     @Override
285     @Transient
286     public Serializable getAuditUserId() {
287         return super.getAuditUserId();
288     }
289
290     @Override
291     @Transient
292     public Long getRowNum() {
293         return super.getRowNum();
294     }
295
296     @Override
297     @Transient
298     public Set getAuditTrail() {
299         return super.getAuditTrail();
300     }
301
302     public void setJobId(UUID jobId) {
303         this.jobId = jobId;
304     }
305
306     public void setTemplateId(UUID templateId) {
307         this.templateId = templateId;
308     }
309
310     public void setMsoRequestId(UUID requestId) {
311         this.msoRequestId = requestId;
312     }
313
314     public void setALaCarte(boolean aLaCarte) {
315         this.aLaCarte = aLaCarte;
316     }
317
318     public void setJobStatus(Job.JobStatus jobStatus) {
319         this.jobStatus = jobStatus;
320     }
321
322     public void setStatusModifiedDate(Date statusModifiedDate) {
323         this.statusModifiedDate = statusModifiedDate;
324     }
325
326     public void setHidden(boolean isHidden) {
327         hidden = isHidden;
328     }
329
330     public void setPause(boolean pause) {
331         this.pause = pause;
332     }
333
334     public void setOwningEntityId(String owningEntityId) {
335         this.owningEntityId = owningEntityId;
336     }
337
338     public void setOwningEntityName(String owningEntityName) {
339         this.owningEntityName = owningEntityName;
340     }
341
342     public void setProject(String project) {
343         this.project = project;
344     }
345
346     public void setAicZoneId(String aicZoneId) {
347         this.aicZoneId = aicZoneId;
348     }
349
350     public void setAicZoneName(String aicZoneName) {
351         this.aicZoneName = aicZoneName;
352     }
353
354     public void setTenantId(String tenantId) {
355         this.tenantId = tenantId;
356     }
357
358     public void setTenantName(String tenantName) {
359         this.tenantName = tenantName;
360     }
361
362     public void setRegionId(String regionId) {
363         this.regionId = regionId;
364     }
365
366     public void setRegionName(String regionName) {
367         this.regionName = regionName;
368     }
369
370     public void setServiceType(String serviceType) {
371         this.serviceType = serviceType;
372     }
373
374     public void setSubscriberName(String subscriberName) {
375         this.subscriberName = subscriberName;
376     }
377
378     public void setSubscriberId(String subscriberId) {
379         this.subscriberId = subscriberId;
380     }
381
382     public void setServiceInstanceId(String serviceInstanceId) {
383         this.serviceInstanceId = serviceInstanceId;
384     }
385
386     public void setServiceInstanceName(String serviceInstanceName) {
387         this.serviceInstanceName = serviceInstanceName;
388     }
389
390     public void setServiceModelId(String serviceModelId) {
391         this.serviceModelId = serviceModelId;
392     }
393
394     public void setServiceModelName(String serviceModelName) {
395         this.serviceModelName = serviceModelName;
396     }
397
398     public void setServiceModelVersion(String serviceModelVersion) {
399         this.serviceModelVersion = serviceModelVersion;
400     }
401
402     public void setCreatedBulkDate(Date createdBulkDate) {
403         this.createdBulkDate = createdBulkDate;
404     }
405
406     public void setDeletedAt(Date deletedAt) {
407          this.deletedAt = deletedAt;
408      }
409
410     public void setAction(ServiceAction action) { this.action = action; }
411
412      @Override
413      public boolean equals(Object o) {
414          if (this == o) return true;
415          if (!(o instanceof ServiceInfo)) return false;
416          ServiceInfo that = (ServiceInfo) o;
417          return isHidden() == that.isHidden() &&
418                  isPause() == that.isPause() &&
419                  isALaCarte() == that.isALaCarte() &&
420                  Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
421                  Objects.equals(getJobId(), that.getJobId()) &&
422                  Objects.equals(getTemplateId(), that.getTemplateId()) &&
423                  Objects.equals(getUserId(), that.getUserId()) &&
424                  Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
425                  getJobStatus() == that.getJobStatus() &&
426                  Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
427                  Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
428                  Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
429                  Objects.equals(getProject(), that.getProject()) &&
430                  Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
431                  Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
432                  Objects.equals(getTenantId(), that.getTenantId()) &&
433                  Objects.equals(getTenantName(), that.getTenantName()) &&
434                  Objects.equals(getRegionId(), that.getRegionId()) &&
435                  Objects.equals(getRegionName(), that.getRegionName()) &&
436                  Objects.equals(getServiceType(), that.getServiceType()) &&
437                  Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
438                  Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
439                  Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
440                  Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
441                  Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
442                  Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
443                  Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
444                  Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
445                  Objects.equals(getAction(), that.getAction());
446      }
447
448      @Override
449      public int hashCode() {
450
451          return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), isALaCarte(), getJobStatus(), getStatusModifiedDate(),
452                  isHidden(), isPause(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(), getProject(),
453                  getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(),
454                  getRegionName(), getServiceType(), getSubscriberName(), getSubscriberId(), getServiceInstanceId(),
455                  getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
456                  getServiceModelVersion(), getCreatedBulkDate(), getAction());
457      }
458  }