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;
28 import java.util.Objects;
30 import java.util.UUID;
31 import javax.persistence.Column;
32 import javax.persistence.Convert;
33 import javax.persistence.Entity;
34 import javax.persistence.EnumType;
35 import javax.persistence.Enumerated;
36 import javax.persistence.GeneratedValue;
37 import javax.persistence.GenerationType;
38 import javax.persistence.Id;
39 import javax.persistence.Table;
40 import javax.persistence.Transient;
41 import org.hibernate.annotations.DynamicUpdate;
42 import org.hibernate.annotations.SelectBeforeUpdate;
43 import org.hibernate.annotations.Type;
44 import org.onap.portalsdk.core.domain.support.DomainVo;
45 import org.onap.vid.job.Job;
46 import org.onap.vid.job.Job.JobStatus;
47 import org.onap.vid.utils.DaoUtils.StringToLongMapAttributeConverter;
50 The following 2 annotations let hibernate to update only fields that actually have been changed.
51 DynamicUpdate tell hibernate to update only dirty fields.
52 SelectBeforeUpdate is needed since during update the entity is detached (get and update are in different sessions)
57 @Table(name = "vid_service_info")
58 public class ServiceInfo extends DomainVo {
60 public enum ServiceAction {
69 private UUID templateId;
70 private String userId;
71 private UUID msoRequestId;
72 private boolean aLaCarte;
73 private Job.JobStatus jobStatus;
74 private Date statusModifiedDate;
75 private boolean hidden;
76 private boolean pause;
77 private boolean retryEnabled;
78 private Date deletedAt;
79 private String owningEntityId;
80 private String owningEntityName;
81 private String project;
82 private String aicZoneId;
83 private String aicZoneName;
84 private String tenantId;
85 private String tenantName;
86 private String regionId;
87 private String regionName;
88 private String serviceType;
89 private String subscriberName;
90 private String subscriberId;
91 private String serviceInstanceId;
92 private String serviceInstanceName;
93 private String serviceModelId;
94 private String serviceModelName;
95 private String serviceModelVersion;
96 private Date createdBulkDate;
97 private ServiceAction action;
98 private Map<String, Long> requestSummary;
100 public ServiceInfo(){
104 public ServiceInfo(String userId, Boolean aLaCarte, JobStatus jobStatus, boolean pause, UUID jobId,
106 String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName,
107 String tenantId, String tenantName, String regionId, String regionName, String serviceType,
108 String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName,
109 String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate,
110 ServiceAction action, boolean retryEnabled, Map<String, Long> requestSummary) {
111 this.userId = userId;
112 this.aLaCarte = aLaCarte;
113 this.jobStatus = jobStatus;
115 this.templateId = templateId;
117 this.owningEntityId = owningEntityId;
118 this.owningEntityName = owningEntityName;
119 this.project = project;
120 this.aicZoneId = aicZoneId;
121 this.aicZoneName = aicZoneName;
122 this.tenantId = tenantId;
123 this.tenantName = tenantName;
124 this.regionId = regionId;
125 this.regionName = regionName;
126 this.serviceType = serviceType;
127 this.subscriberName = subscriberName;
128 this.subscriberId = subscriberId;
129 this.serviceInstanceId = serviceInstanceId;
130 this.serviceInstanceName = serviceInstanceName;
131 this.serviceModelId = serviceModelId;
132 this.serviceModelName = serviceModelName;
133 this.serviceModelVersion = serviceModelVersion;
134 this.createdBulkDate = createdBulkDate;
135 this.action = action;
136 this.retryEnabled = retryEnabled;
137 this.requestSummary = requestSummary;
140 @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
141 @Type(type="org.hibernate.type.UUIDCharType")
142 public UUID getJobId() {
146 @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
147 @Type(type="org.hibernate.type.UUIDCharType")
148 public UUID getTemplateId() {
152 @Column(name="USER_ID")
153 public String getUserId() {
157 @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
158 @Type(type="org.hibernate.type.UUIDCharType")
159 public UUID getMsoRequestId() {
163 @Column(name="IS_A_LA_CARTE")
164 @JsonProperty("aLaCarte")
165 public boolean isALaCarte() {
169 @Column(name="JOB_STATUS")
170 @Enumerated(EnumType.STRING)
171 public Job.JobStatus getJobStatus() {
175 @Column(name="STATUS_MODIFIED_DATE")
176 public Date getStatusModifiedDate() {
177 return statusModifiedDate;
180 @Column(name="IS_HIDDEN")
181 public boolean isHidden() {
185 @Column(name="IS_PAUSE")
186 public boolean isPause() {
190 @Column(name="IS_RETRY_ENABLED")
191 @JsonProperty("isRetryEnabled")
192 public boolean isRetryEnabled() {
196 @Column(name="OWNING_ENTITY_ID")
197 public String getOwningEntityId() {
198 return owningEntityId;
201 @Column(name="OWNING_ENTITY_NAME")
202 public String getOwningEntityName() {
203 return owningEntityName;
206 @Column(name="PROJECT")
207 public String getProject() {
211 @Column(name="AIC_ZONE_ID")
212 public String getAicZoneId() {
216 @Column(name="AIC_ZONE_NAME")
217 public String getAicZoneName() {
221 @Column(name="TENANT_ID")
222 public String getTenantId() {
226 @Column(name="TENANT_NAME")
227 public String getTenantName() {
231 @Column(name="REGION_ID")
232 public String getRegionId() {
236 @Column(name="REGION_NAME")
237 public String getRegionName() {
241 @Column(name="SERVICE_TYPE")
242 public String getServiceType() {
246 @Column(name="SUBSCRIBER_NAME")
247 public String getSubscriberName() {
248 return subscriberName;
251 @Column(name="SUBSCRIBER_ID")
252 public String getSubscriberId() {
256 @Column(name="SERVICE_INSTANCE_ID")
257 public String getServiceInstanceId() {
258 return serviceInstanceId;
261 @Column(name="SERVICE_INSTANCE_NAME")
262 public String getServiceInstanceName() {
263 return serviceInstanceName;
266 @Column(name="SERVICE_MODEL_ID")
267 public String getServiceModelId() {
268 return serviceModelId;
271 @Column(name="SERVICE_MODEL_NAME")
272 public String getServiceModelName() {
273 return serviceModelName;
276 @Column(name="SERVICE_MODEL_VERSION")
277 public String getServiceModelVersion() {
278 return serviceModelVersion;
281 @Column(name="CREATED_BULK_DATE")
282 public Date getCreatedBulkDate() {
283 return createdBulkDate;
286 @Column(name="DELETED_AT")
287 public Date getDeletedAt() {
291 @Column(name="ACTION")
292 @Enumerated(EnumType.STRING)
293 public ServiceAction getAction() {
297 @Column(name="REQUEST_SUMMARY")
298 @Convert(converter = StringToLongMapAttributeConverter.class)
299 public Map<String, Long> getRequestSummary() {
300 return requestSummary;
304 @GeneratedValue(strategy = GenerationType.IDENTITY)
306 @Column(name = "ID", columnDefinition = "INT(11)")
307 public Long getId() {
312 @Column(name = "CREATED_DATE")
313 public Date getCreated() {
314 return super.getCreated();
318 @Column(name = "MODIFIED_DATE")
319 public Date getModified() {
320 return super.getModified();
325 public Long getCreatedId() {
326 return super.getCreatedId();
331 public Long getModifiedId() {
332 return super.getModifiedId();
337 public Serializable getAuditUserId() {
338 return super.getAuditUserId();
343 public Long getRowNum() {
344 return super.getRowNum();
349 public Set getAuditTrail() {
350 return super.getAuditTrail();
353 public void setUserId(String userId) {
354 this.userId = userId;
356 public void setJobId(UUID jobId) {
360 public void setTemplateId(UUID templateId) {
361 this.templateId = templateId;
364 public void setMsoRequestId(UUID requestId) {
365 this.msoRequestId = requestId;
368 public void setALaCarte(boolean aLaCarte) {
369 this.aLaCarte = aLaCarte;
372 public void setJobStatus(Job.JobStatus jobStatus) {
373 this.jobStatus = jobStatus;
376 public void setStatusModifiedDate(Date statusModifiedDate) {
377 this.statusModifiedDate = statusModifiedDate;
380 public void setHidden(boolean isHidden) {
384 public void setPause(boolean pause) {
388 public void setRetryEnabled(boolean retryEnabled) {
389 this.retryEnabled = retryEnabled;
392 public void setOwningEntityId(String owningEntityId) {
393 this.owningEntityId = owningEntityId;
396 public void setOwningEntityName(String owningEntityName) {
397 this.owningEntityName = owningEntityName;
400 public void setProject(String project) {
401 this.project = project;
404 public void setAicZoneId(String aicZoneId) {
405 this.aicZoneId = aicZoneId;
408 public void setAicZoneName(String aicZoneName) {
409 this.aicZoneName = aicZoneName;
412 public void setTenantId(String tenantId) {
413 this.tenantId = tenantId;
416 public void setTenantName(String tenantName) {
417 this.tenantName = tenantName;
420 public void setRegionId(String regionId) {
421 this.regionId = regionId;
424 public void setRegionName(String regionName) {
425 this.regionName = regionName;
428 public void setServiceType(String serviceType) {
429 this.serviceType = serviceType;
432 public void setSubscriberName(String subscriberName) {
433 this.subscriberName = subscriberName;
436 public void setSubscriberId(String subscriberId) {
437 this.subscriberId = subscriberId;
440 public void setServiceInstanceId(String serviceInstanceId) {
441 this.serviceInstanceId = serviceInstanceId;
444 public void setServiceInstanceName(String serviceInstanceName) {
445 this.serviceInstanceName = serviceInstanceName;
448 public void setServiceModelId(String serviceModelId) {
449 this.serviceModelId = serviceModelId;
452 public void setServiceModelName(String serviceModelName) {
453 this.serviceModelName = serviceModelName;
456 public void setServiceModelVersion(String serviceModelVersion) {
457 this.serviceModelVersion = serviceModelVersion;
460 public void setCreatedBulkDate(Date createdBulkDate) {
461 this.createdBulkDate = createdBulkDate;
464 public void setDeletedAt(Date deletedAt) {
465 this.deletedAt = deletedAt;
468 public void setAction(ServiceAction action) { this.action = action; }
470 public void setRequestSummary(Map<String, Long> requestSummary) {
471 this.requestSummary = requestSummary;
475 public boolean equals(Object o) {
476 if (this == o) return true;
477 if (!(o instanceof ServiceInfo)) return false;
478 ServiceInfo that = (ServiceInfo) o;
479 return aLaCarte == that.aLaCarte &&
480 isHidden() == that.isHidden() &&
481 isPause() == that.isPause() &&
482 isRetryEnabled() == that.isRetryEnabled() &&
483 Objects.equals(getJobId(), that.getJobId()) &&
484 Objects.equals(getTemplateId(), that.getTemplateId()) &&
485 Objects.equals(getUserId(), that.getUserId()) &&
486 Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
487 getJobStatus() == that.getJobStatus() &&
488 Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
489 Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
490 Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
491 Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
492 Objects.equals(getProject(), that.getProject()) &&
493 Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
494 Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
495 Objects.equals(getTenantId(), that.getTenantId()) &&
496 Objects.equals(getTenantName(), that.getTenantName()) &&
497 Objects.equals(getRegionId(), that.getRegionId()) &&
498 Objects.equals(getRegionName(), that.getRegionName()) &&
499 Objects.equals(getServiceType(), that.getServiceType()) &&
500 Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
501 Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
502 Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
503 Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
504 Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
505 Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
506 Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
507 Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
508 Objects.equals(getRequestSummary(), that.getRequestSummary()) &&
509 getAction() == that.getAction();
513 public int hashCode() {
514 return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), aLaCarte, getJobStatus(),
515 getStatusModifiedDate(), isHidden(), isPause(), isRetryEnabled(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(),
516 getProject(), getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(), getRegionName(), getServiceType(),
517 getSubscriberName(), getSubscriberId(), getServiceInstanceId(), getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
518 getServiceModelVersion(), getCreatedBulkDate(), getAction(), getRequestSummary());