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 java.io.Serializable;
26 import java.util.Date;
27 import java.util.Objects;
29 import java.util.UUID;
30 import javax.persistence.Column;
31 import javax.persistence.Entity;
32 import javax.persistence.EnumType;
33 import javax.persistence.Enumerated;
34 import javax.persistence.GeneratedValue;
35 import javax.persistence.GenerationType;
36 import javax.persistence.Id;
37 import javax.persistence.Table;
38 import javax.persistence.Transient;
39 import org.hibernate.annotations.DynamicUpdate;
40 import org.hibernate.annotations.SelectBeforeUpdate;
41 import org.hibernate.annotations.Type;
42 import org.onap.portalsdk.core.domain.support.DomainVo;
43 import org.onap.vid.job.Job;
46 The following 2 annotations let hibernate to update only fields that actually have been changed.
47 DynamicUpdate tell hibernate to update only dirty fields.
48 SelectBeforeUpdate is needed since during update the entity is detached (get and update are in different sessions)
53 @Table(name = "vid_service_info")
54 public class ServiceInfo extends DomainVo {
56 public enum ServiceAction {
65 private UUID templateId;
66 private String userId;
67 private UUID msoRequestId;
68 private boolean aLaCarte;
69 private Job.JobStatus jobStatus;
70 private Date statusModifiedDate;
71 private boolean hidden;
72 private boolean pause;
73 private boolean retryEnabled;
74 private Date deletedAt;
75 private String owningEntityId;
76 private String owningEntityName;
77 private String project;
78 private String aicZoneId;
79 private String aicZoneName;
80 private String tenantId;
81 private String tenantName;
82 private String regionId;
83 private String regionName;
84 private String serviceType;
85 private String subscriberName;
86 private String subscriberId;
87 private String serviceInstanceId;
88 private String serviceInstanceName;
89 private String serviceModelId;
90 private String serviceModelName;
91 private String serviceModelVersion;
92 private Date createdBulkDate;
93 private ServiceAction action;
99 public ServiceInfo(String userId, Boolean aLaCarte, Job.JobStatus jobStatus, boolean pause, UUID jobId, UUID templateId,
100 String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName,
101 String tenantId, String tenantName, String regionId, String regionName, String serviceType,
102 String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName,
103 String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate,
104 ServiceAction action, boolean retryEnabled) {
105 this.userId = userId;
106 this.aLaCarte = aLaCarte;
107 this.jobStatus = jobStatus;
109 this.templateId = templateId;
111 this.owningEntityId = owningEntityId;
112 this.owningEntityName = owningEntityName;
113 this.project = project;
114 this.aicZoneId = aicZoneId;
115 this.aicZoneName = aicZoneName;
116 this.tenantId = tenantId;
117 this.tenantName = tenantName;
118 this.regionId = regionId;
119 this.regionName = regionName;
120 this.serviceType = serviceType;
121 this.subscriberName = subscriberName;
122 this.subscriberId = subscriberId;
123 this.serviceInstanceId = serviceInstanceId;
124 this.serviceInstanceName = serviceInstanceName;
125 this.serviceModelId = serviceModelId;
126 this.serviceModelName = serviceModelName;
127 this.serviceModelVersion = serviceModelVersion;
128 this.createdBulkDate = createdBulkDate;
129 this.action = action;
130 this.retryEnabled = retryEnabled;
133 @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
134 @Type(type="org.hibernate.type.UUIDCharType")
135 public UUID getJobId() {
139 @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
140 @Type(type="org.hibernate.type.UUIDCharType")
141 public UUID getTemplateId() {
145 @Column(name="USER_ID")
146 public String getUserId() {
150 @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
151 @Type(type="org.hibernate.type.UUIDCharType")
152 public UUID getMsoRequestId() {
156 @Column(name="IS_A_LA_CARTE")
157 @JsonProperty("aLaCarte")
158 public boolean isALaCarte() {
162 @Column(name="JOB_STATUS")
163 @Enumerated(EnumType.STRING)
164 public Job.JobStatus getJobStatus() {
168 @Column(name="STATUS_MODIFIED_DATE")
169 public Date getStatusModifiedDate() {
170 return statusModifiedDate;
173 @Column(name="IS_HIDDEN")
174 public boolean isHidden() {
178 @Column(name="IS_PAUSE")
179 public boolean isPause() {
183 @Column(name="IS_RETRY_ENABLED")
184 @JsonProperty("isRetryEnabled")
185 public boolean isRetryEnabled() {
189 @Column(name="OWNING_ENTITY_ID")
190 public String getOwningEntityId() {
191 return owningEntityId;
194 @Column(name="OWNING_ENTITY_NAME")
195 public String getOwningEntityName() {
196 return owningEntityName;
199 @Column(name="PROJECT")
200 public String getProject() {
204 @Column(name="AIC_ZONE_ID")
205 public String getAicZoneId() {
209 @Column(name="AIC_ZONE_NAME")
210 public String getAicZoneName() {
214 @Column(name="TENANT_ID")
215 public String getTenantId() {
219 @Column(name="TENANT_NAME")
220 public String getTenantName() {
224 @Column(name="REGION_ID")
225 public String getRegionId() {
229 @Column(name="REGION_NAME")
230 public String getRegionName() {
234 @Column(name="SERVICE_TYPE")
235 public String getServiceType() {
239 @Column(name="SUBSCRIBER_NAME")
240 public String getSubscriberName() {
241 return subscriberName;
244 @Column(name="SUBSCRIBER_ID")
245 public String getSubscriberId() {
249 @Column(name="SERVICE_INSTANCE_ID")
250 public String getServiceInstanceId() {
251 return serviceInstanceId;
254 @Column(name="SERVICE_INSTANCE_NAME")
255 public String getServiceInstanceName() {
256 return serviceInstanceName;
259 @Column(name="SERVICE_MODEL_ID")
260 public String getServiceModelId() {
261 return serviceModelId;
264 @Column(name="SERVICE_MODEL_NAME")
265 public String getServiceModelName() {
266 return serviceModelName;
269 @Column(name="SERVICE_MODEL_VERSION")
270 public String getServiceModelVersion() {
271 return serviceModelVersion;
274 @Column(name="CREATED_BULK_DATE")
275 public Date getCreatedBulkDate() {
276 return createdBulkDate;
279 @Column(name="DELETED_AT")
280 public Date getDeletedAt() {
284 @Column(name="ACTION")
285 @Enumerated(EnumType.STRING)
286 public ServiceAction getAction() {
291 @GeneratedValue(strategy = GenerationType.IDENTITY)
293 @Column(name = "ID", columnDefinition = "INT(11)")
294 public Long getId() {
299 @Column(name = "CREATED_DATE")
300 public Date getCreated() {
301 return super.getCreated();
305 @Column(name = "MODIFIED_DATE")
306 public Date getModified() {
307 return super.getModified();
312 public Long getCreatedId() {
313 return super.getCreatedId();
318 public Long getModifiedId() {
319 return super.getModifiedId();
324 public Serializable getAuditUserId() {
325 return super.getAuditUserId();
330 public Long getRowNum() {
331 return super.getRowNum();
336 public Set getAuditTrail() {
337 return super.getAuditTrail();
340 public void setUserId(String userId) {
341 this.userId = userId;
343 public void setJobId(UUID jobId) {
347 public void setTemplateId(UUID templateId) {
348 this.templateId = templateId;
351 public void setMsoRequestId(UUID requestId) {
352 this.msoRequestId = requestId;
355 public void setALaCarte(boolean aLaCarte) {
356 this.aLaCarte = aLaCarte;
359 public void setJobStatus(Job.JobStatus jobStatus) {
360 this.jobStatus = jobStatus;
363 public void setStatusModifiedDate(Date statusModifiedDate) {
364 this.statusModifiedDate = statusModifiedDate;
367 public void setHidden(boolean isHidden) {
371 public void setPause(boolean pause) {
375 public void setRetryEnabled(boolean retryEnabled) {
376 this.retryEnabled = retryEnabled;
379 public void setOwningEntityId(String owningEntityId) {
380 this.owningEntityId = owningEntityId;
383 public void setOwningEntityName(String owningEntityName) {
384 this.owningEntityName = owningEntityName;
387 public void setProject(String project) {
388 this.project = project;
391 public void setAicZoneId(String aicZoneId) {
392 this.aicZoneId = aicZoneId;
395 public void setAicZoneName(String aicZoneName) {
396 this.aicZoneName = aicZoneName;
399 public void setTenantId(String tenantId) {
400 this.tenantId = tenantId;
403 public void setTenantName(String tenantName) {
404 this.tenantName = tenantName;
407 public void setRegionId(String regionId) {
408 this.regionId = regionId;
411 public void setRegionName(String regionName) {
412 this.regionName = regionName;
415 public void setServiceType(String serviceType) {
416 this.serviceType = serviceType;
419 public void setSubscriberName(String subscriberName) {
420 this.subscriberName = subscriberName;
423 public void setSubscriberId(String subscriberId) {
424 this.subscriberId = subscriberId;
427 public void setServiceInstanceId(String serviceInstanceId) {
428 this.serviceInstanceId = serviceInstanceId;
431 public void setServiceInstanceName(String serviceInstanceName) {
432 this.serviceInstanceName = serviceInstanceName;
435 public void setServiceModelId(String serviceModelId) {
436 this.serviceModelId = serviceModelId;
439 public void setServiceModelName(String serviceModelName) {
440 this.serviceModelName = serviceModelName;
443 public void setServiceModelVersion(String serviceModelVersion) {
444 this.serviceModelVersion = serviceModelVersion;
447 public void setCreatedBulkDate(Date createdBulkDate) {
448 this.createdBulkDate = createdBulkDate;
451 public void setDeletedAt(Date deletedAt) {
452 this.deletedAt = deletedAt;
455 public void setAction(ServiceAction action) { this.action = action; }
458 public boolean equals(Object o) {
459 if (this == o) return true;
460 if (!(o instanceof ServiceInfo)) return false;
461 ServiceInfo that = (ServiceInfo) o;
462 return aLaCarte == that.aLaCarte &&
463 isHidden() == that.isHidden() &&
464 isPause() == that.isPause() &&
465 isRetryEnabled() == that.isRetryEnabled() &&
466 Objects.equals(getJobId(), that.getJobId()) &&
467 Objects.equals(getTemplateId(), that.getTemplateId()) &&
468 Objects.equals(getUserId(), that.getUserId()) &&
469 Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
470 getJobStatus() == that.getJobStatus() &&
471 Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
472 Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
473 Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
474 Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
475 Objects.equals(getProject(), that.getProject()) &&
476 Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
477 Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
478 Objects.equals(getTenantId(), that.getTenantId()) &&
479 Objects.equals(getTenantName(), that.getTenantName()) &&
480 Objects.equals(getRegionId(), that.getRegionId()) &&
481 Objects.equals(getRegionName(), that.getRegionName()) &&
482 Objects.equals(getServiceType(), that.getServiceType()) &&
483 Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
484 Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
485 Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
486 Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
487 Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
488 Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
489 Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
490 Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
491 getAction() == that.getAction();
495 public int hashCode() {
496 return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), aLaCarte, getJobStatus(),
497 getStatusModifiedDate(), isHidden(), isPause(), isRetryEnabled(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(),
498 getProject(), getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(), getRegionName(), getServiceType(),
499 getSubscriberName(), getSubscriberId(), getServiceInstanceId(), getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
500 getServiceModelVersion(), getCreatedBulkDate(), getAction());