2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.vid.model;
24 import com.fasterxml.jackson.annotation.JsonProperty;
25 import org.hibernate.annotations.DynamicUpdate;
26 import org.hibernate.annotations.SelectBeforeUpdate;
27 import org.hibernate.annotations.Type;
28 import org.onap.portalsdk.core.domain.support.DomainVo;
29 import org.onap.vid.job.Job;
31 import javax.persistence.*;
32 import java.io.Serializable;
33 import java.util.Date;
34 import java.util.Objects;
36 import java.util.UUID;
39 The following 2 annotations let hibernate to update only fields that actually have been changed.
40 DynamicUpdate tell hibernate to update only dirty fields.
41 SelectBeforeUpdate is needed since during update the entity is detached (get and update are in different sessions)
46 @Table(name = "vid_service_info")
47 public class ServiceInfo extends DomainVo {
49 public enum ServiceAction {
58 private UUID templateId;
59 private String userId;
60 private UUID msoRequestId;
61 private boolean aLaCarte;
62 private Job.JobStatus jobStatus;
63 private Date statusModifiedDate;
64 private boolean hidden;
65 private boolean pause;
66 private boolean retryEnabled;
67 private Date deletedAt;
68 private String owningEntityId;
69 private String owningEntityName;
70 private String project;
71 private String aicZoneId;
72 private String aicZoneName;
73 private String tenantId;
74 private String tenantName;
75 private String regionId;
76 private String regionName;
77 private String serviceType;
78 private String subscriberName;
79 private String subscriberId;
80 private String serviceInstanceId;
81 private String serviceInstanceName;
82 private String serviceModelId;
83 private String serviceModelName;
84 private String serviceModelVersion;
85 private Date createdBulkDate;
86 private ServiceAction action;
92 public ServiceInfo(String userId, Boolean aLaCarte, Job.JobStatus jobStatus, boolean pause, UUID jobId, UUID templateId,
93 String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName,
94 String tenantId, String tenantName, String regionId, String regionName, String serviceType,
95 String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName,
96 String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate,
97 ServiceAction action, boolean retryEnabled) {
99 this.aLaCarte = aLaCarte;
100 this.jobStatus = jobStatus;
102 this.templateId = templateId;
104 this.owningEntityId = owningEntityId;
105 this.owningEntityName = owningEntityName;
106 this.project = project;
107 this.aicZoneId = aicZoneId;
108 this.aicZoneName = aicZoneName;
109 this.tenantId = tenantId;
110 this.tenantName = tenantName;
111 this.regionId = regionId;
112 this.regionName = regionName;
113 this.serviceType = serviceType;
114 this.subscriberName = subscriberName;
115 this.subscriberId = subscriberId;
116 this.serviceInstanceId = serviceInstanceId;
117 this.serviceInstanceName = serviceInstanceName;
118 this.serviceModelId = serviceModelId;
119 this.serviceModelName = serviceModelName;
120 this.serviceModelVersion = serviceModelVersion;
121 this.createdBulkDate = createdBulkDate;
122 this.action = action;
123 this.retryEnabled = retryEnabled;
126 @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
127 @Type(type="org.hibernate.type.UUIDCharType")
128 public UUID getJobId() {
132 @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
133 @Type(type="org.hibernate.type.UUIDCharType")
134 public UUID getTemplateId() {
138 @Column(name="USER_ID")
139 public String getUserId() {
143 @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
144 @Type(type="org.hibernate.type.UUIDCharType")
145 public UUID getMsoRequestId() {
149 @Column(name="IS_A_LA_CARTE")
150 @JsonProperty("aLaCarte")
151 public boolean isALaCarte() {
155 @Column(name="JOB_STATUS")
156 @Enumerated(EnumType.STRING)
157 public Job.JobStatus getJobStatus() {
161 @Column(name="STATUS_MODIFIED_DATE")
162 public Date getStatusModifiedDate() {
163 return statusModifiedDate;
166 @Column(name="IS_HIDDEN")
167 public boolean isHidden() {
171 @Column(name="IS_PAUSE")
172 public boolean isPause() {
176 @Column(name="IS_RETRY_ENABLED")
177 @JsonProperty("isRetryEnabled")
178 public boolean isRetryEnabled() {
182 @Column(name="OWNING_ENTITY_ID")
183 public String getOwningEntityId() {
184 return owningEntityId;
187 @Column(name="OWNING_ENTITY_NAME")
188 public String getOwningEntityName() {
189 return owningEntityName;
192 @Column(name="PROJECT")
193 public String getProject() {
197 @Column(name="AIC_ZONE_ID")
198 public String getAicZoneId() {
202 @Column(name="AIC_ZONE_NAME")
203 public String getAicZoneName() {
207 @Column(name="TENANT_ID")
208 public String getTenantId() {
212 @Column(name="TENANT_NAME")
213 public String getTenantName() {
217 @Column(name="REGION_ID")
218 public String getRegionId() {
222 @Column(name="REGION_NAME")
223 public String getRegionName() {
227 @Column(name="SERVICE_TYPE")
228 public String getServiceType() {
232 @Column(name="SUBSCRIBER_NAME")
233 public String getSubscriberName() {
234 return subscriberName;
237 @Column(name="SUBSCRIBER_ID")
238 public String getSubscriberId() {
242 @Column(name="SERVICE_INSTANCE_ID")
243 public String getServiceInstanceId() {
244 return serviceInstanceId;
247 @Column(name="SERVICE_INSTANCE_NAME")
248 public String getServiceInstanceName() {
249 return serviceInstanceName;
252 @Column(name="SERVICE_MODEL_ID")
253 public String getServiceModelId() {
254 return serviceModelId;
257 @Column(name="SERVICE_MODEL_NAME")
258 public String getServiceModelName() {
259 return serviceModelName;
262 @Column(name="SERVICE_MODEL_VERSION")
263 public String getServiceModelVersion() {
264 return serviceModelVersion;
267 @Column(name="CREATED_BULK_DATE")
268 public Date getCreatedBulkDate() {
269 return createdBulkDate;
272 @Column(name="DELETED_AT")
273 public Date getDeletedAt() {
277 @Column(name="ACTION")
278 @Enumerated(EnumType.STRING)
279 public ServiceAction getAction() {
284 @GeneratedValue(strategy = GenerationType.IDENTITY)
286 @Column(name = "ID", columnDefinition = "INT(11)")
287 public Long getId() {
292 @Column(name = "CREATED_DATE")
293 public Date getCreated() {
294 return super.getCreated();
298 @Column(name = "MODIFIED_DATE")
299 public Date getModified() {
300 return super.getModified();
305 public Long getCreatedId() {
306 return super.getCreatedId();
311 public Long getModifiedId() {
312 return super.getModifiedId();
317 public Serializable getAuditUserId() {
318 return super.getAuditUserId();
323 public Long getRowNum() {
324 return super.getRowNum();
329 public Set getAuditTrail() {
330 return super.getAuditTrail();
333 public void setUserId(String userId) {
334 this.userId = userId;
336 public void setJobId(UUID jobId) {
340 public void setTemplateId(UUID templateId) {
341 this.templateId = templateId;
344 public void setMsoRequestId(UUID requestId) {
345 this.msoRequestId = requestId;
348 public void setALaCarte(boolean aLaCarte) {
349 this.aLaCarte = aLaCarte;
352 public void setJobStatus(Job.JobStatus jobStatus) {
353 this.jobStatus = jobStatus;
356 public void setStatusModifiedDate(Date statusModifiedDate) {
357 this.statusModifiedDate = statusModifiedDate;
360 public void setHidden(boolean isHidden) {
364 public void setPause(boolean pause) {
368 public void setRetryEnabled(boolean retryEnabled) {
369 this.retryEnabled = retryEnabled;
372 public void setOwningEntityId(String owningEntityId) {
373 this.owningEntityId = owningEntityId;
376 public void setOwningEntityName(String owningEntityName) {
377 this.owningEntityName = owningEntityName;
380 public void setProject(String project) {
381 this.project = project;
384 public void setAicZoneId(String aicZoneId) {
385 this.aicZoneId = aicZoneId;
388 public void setAicZoneName(String aicZoneName) {
389 this.aicZoneName = aicZoneName;
392 public void setTenantId(String tenantId) {
393 this.tenantId = tenantId;
396 public void setTenantName(String tenantName) {
397 this.tenantName = tenantName;
400 public void setRegionId(String regionId) {
401 this.regionId = regionId;
404 public void setRegionName(String regionName) {
405 this.regionName = regionName;
408 public void setServiceType(String serviceType) {
409 this.serviceType = serviceType;
412 public void setSubscriberName(String subscriberName) {
413 this.subscriberName = subscriberName;
416 public void setSubscriberId(String subscriberId) {
417 this.subscriberId = subscriberId;
420 public void setServiceInstanceId(String serviceInstanceId) {
421 this.serviceInstanceId = serviceInstanceId;
424 public void setServiceInstanceName(String serviceInstanceName) {
425 this.serviceInstanceName = serviceInstanceName;
428 public void setServiceModelId(String serviceModelId) {
429 this.serviceModelId = serviceModelId;
432 public void setServiceModelName(String serviceModelName) {
433 this.serviceModelName = serviceModelName;
436 public void setServiceModelVersion(String serviceModelVersion) {
437 this.serviceModelVersion = serviceModelVersion;
440 public void setCreatedBulkDate(Date createdBulkDate) {
441 this.createdBulkDate = createdBulkDate;
444 public void setDeletedAt(Date deletedAt) {
445 this.deletedAt = deletedAt;
448 public void setAction(ServiceAction action) { this.action = action; }
451 public boolean equals(Object o) {
452 if (this == o) return true;
453 if (!(o instanceof ServiceInfo)) return false;
454 ServiceInfo that = (ServiceInfo) o;
455 return aLaCarte == that.aLaCarte &&
456 isHidden() == that.isHidden() &&
457 isPause() == that.isPause() &&
458 isRetryEnabled() == that.isRetryEnabled() &&
459 Objects.equals(getJobId(), that.getJobId()) &&
460 Objects.equals(getTemplateId(), that.getTemplateId()) &&
461 Objects.equals(getUserId(), that.getUserId()) &&
462 Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
463 getJobStatus() == that.getJobStatus() &&
464 Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
465 Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
466 Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
467 Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
468 Objects.equals(getProject(), that.getProject()) &&
469 Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
470 Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
471 Objects.equals(getTenantId(), that.getTenantId()) &&
472 Objects.equals(getTenantName(), that.getTenantName()) &&
473 Objects.equals(getRegionId(), that.getRegionId()) &&
474 Objects.equals(getRegionName(), that.getRegionName()) &&
475 Objects.equals(getServiceType(), that.getServiceType()) &&
476 Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
477 Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
478 Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
479 Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
480 Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
481 Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
482 Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
483 Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
484 getAction() == that.getAction();
488 public int hashCode() {
489 return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), aLaCarte, getJobStatus(),
490 getStatusModifiedDate(), isHidden(), isPause(), isRetryEnabled(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(),
491 getProject(), getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(), getRegionName(), getServiceType(),
492 getSubscriberName(), getSubscriberId(), getServiceInstanceId(), getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
493 getServiceModelVersion(), getCreatedBulkDate(), getAction());