X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Frest%2Fjpa%2FPolicyEntity.java;h=8fa80e635f9a0c59bae73ff45393576d9d8d54f1;hp=6c7b8cf6f7e838b68a7511f82c5e120adb1d44d0;hb=2f3ca9fc5edc5a52659b3486605e0db508143318;hpb=6f2b3f2dd0e80895acd0f77aa5784e717be33696 diff --git a/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java b/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java index 6c7b8cf6f..8fa80e635 100644 --- a/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java +++ b/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java @@ -2,14 +2,15 @@ * ============LICENSE_START======================================================= * ONAP-REST * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,11 +20,14 @@ */ package org.onap.policy.rest.jpa; + /* */ +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; + import java.io.Serializable; import java.util.Date; -import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; @@ -42,291 +46,143 @@ import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Version; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonManagedReference; - -/* - * The Entity class to persist a policy object and its configuration data - */ +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; /** - * + * The Entity class to persist a policy object and its configuration data. */ +// @formatter:off @Entity -//Add a non-unique index and a constraint that says the combo of policyName and scopeId must be unique -@Table(name="PolicyEntity") - -@NamedQueries({ - @NamedQuery(name="PolicyEntity.findAll", query="SELECT e FROM PolicyEntity e "), - @NamedQuery(name="PolicyEntity.findAllByDeletedFlag", query="SELECT e FROM PolicyEntity e WHERE e.deleted = :deleted"), - @NamedQuery(name="PolicyEntity.FindById", query="SELECT e FROM PolicyEntity e WHERE e.policyId = :id"), - @NamedQuery(name="PolicyEntity.deleteAll", query="DELETE FROM PolicyEntity WHERE 1=1"), - @NamedQuery(name="PolicyEntity.findByNameAndScope", query="SELECT e FROM PolicyEntity e WHERE e.policyName = :name AND e.scope = :scope") -}) - +// Add a non-unique index and a constraint that says the combo of policyName and scopeId must be unique +@Table(name = "PolicyEntity") +@NamedQueries( + { + @NamedQuery( + name = "PolicyEntity.findAll", + query = "SELECT e FROM PolicyEntity e " + ), + @NamedQuery( + name = "PolicyEntity.findAllByDeletedFlag", + query = "SELECT e FROM PolicyEntity e WHERE e.deleted = :deleted" + ), + @NamedQuery( + name = "PolicyEntity.FindById", + query = "SELECT e FROM PolicyEntity e WHERE e.policyId = :id" + ), + @NamedQuery( + name = "PolicyEntity.deleteAll", + query = "DELETE FROM PolicyEntity WHERE 1=1" + ), + @NamedQuery( + name = "PolicyEntity.findByNameAndScope", + query = "SELECT e FROM PolicyEntity e WHERE e.policyName = :name AND e.scope = :scope" + ) + } +) +@Getter +@Setter +@EqualsAndHashCode +// @formatter:on public class PolicyEntity implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column (name="policyId") - @JsonBackReference - private long policyId; - - @Column(name="policyName", nullable=false, unique=false, length=255) - private String policyName; - - //The scope is the directory structure in dot notation. For example: org.onap.myproject - @Column(name="scope", nullable=false, unique=false, length=255) - private String scope; - - @Version - @Column(name="version") - private int version; - - //not going to be used - @Column(name="policyVersion") - private int policyVersion = 0; - - @Lob - @Column(name="policyData", nullable=false, columnDefinition="TEXT") - private String policyData = "NoData"; - - @OneToOne(optional=true, orphanRemoval=true) - @JoinColumn(name="configurationDataId") - @JsonManagedReference - private ConfigurationDataEntity configurationDataEntity; - - @OneToOne(optional=true, orphanRemoval=true) - @JoinColumn(name="actionBodyId") - @JsonManagedReference - private ActionBodyEntity actionBodyEntity; - - @Column(name="created_by", nullable=false, length=255) - private String createdBy = "guest"; - - @Temporal(TemporalType.TIMESTAMP) - @Column(name="created_date", updatable=false) - private Date createdDate; - - @Column(name="description", nullable=false, length=2048) - private String description = "NoDescription"; - - @Column(name="modified_by", nullable=false, length=255) - private String modifiedBy = "guest"; - - @Temporal(TemporalType.TIMESTAMP) - @Column(name="modified_date", nullable=false) - private Date modifiedDate; - - @Column(name="deleted", nullable=false) - private boolean deleted = false; - - public PolicyEntity() { - super(); - } - - @PrePersist - public void prePersist() { - Date date = new Date(); - this.createdDate = date; - this.modifiedDate = date; - } - - @PreUpdate - public void preUpdate() { - this.modifiedDate = new Date(); - } - - /** - * @return the policyId - */ - public long getPolicyId() { - return policyId; - } - - /** - * @param policyId cannot be set - */ - - public String getPolicyName() { - return policyName; - } - - public void setPolicyName(String policyName) { - this.policyName = policyName; - } - - /** - * @return the policyData - */ - public String getPolicyData() { - return policyData; - } - - /** - * @param policyData the policyData to set - */ - public void setPolicyData(String policyData) { - this.policyData = policyData; - } - - /** - * @return the configurationDataEntity - */ - public ConfigurationDataEntity getConfigurationData() { - return configurationDataEntity; - } - - /** - * @param configurationDataEntity the configurationDataEntity to set - */ - public void setConfigurationData(ConfigurationDataEntity configurationDataEntity) { - this.configurationDataEntity = configurationDataEntity; - } - - /** - * @return the actionBodyEntity - */ - public ActionBodyEntity getActionBodyEntity() { - return actionBodyEntity; - } - - /** - * @param actionBodyEntity the actionBodyEntity to set - */ - public void setActionBodyEntity(ActionBodyEntity actionBodyEntity) { - this.actionBodyEntity = actionBodyEntity; - } - - /** - * @return the scope - */ - public String getScope() { - return scope; - } - - /** - * @param scope the scope to set - */ - public void setScope(String scope) { - this.scope = scope; - } - - /** - * @return the createdBy - */ - public String getCreatedBy() { - return createdBy; - } - - /** - * @param createdBy the createdBy to set - */ - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - /** - * @return the description - */ - public String getDescription() { - return description; - } - - /** - * @param description the description to set - */ - public void setDescription(String description) { - this.description = description; - } - - /** - * @return the modifiedBy - */ - public String getModifiedBy() { - return modifiedBy; - } - - /** - * @param modifiedBy the modifiedBy to set - */ - public void setModifiedBy(String modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * @return the version - */ - public int getVersion() { - return version; - } - - /** - * @return the createdDate - */ - public Date getCreatedDate() { - return createdDate; - } - - /** - * @return the modifiedDate - */ - public Date getModifiedDate() { - return modifiedDate; - } - - /** - * @return the deleted - */ - public boolean isDeleted() { - return deleted; - } - - /** - * @param deleted the deleted to set - */ - public void setDeleted(boolean deleted) { - this.deleted = deleted; - } - - @Override - public int hashCode() { - return Objects.hash(policyId, policyName, scope, version, policyVersion, policyData, configurationDataEntity, - actionBodyEntity, createdBy, createdDate, description, modifiedBy, modifiedDate, deleted); - } - - @Override - public boolean equals(Object obj) { - if(obj == null){ - return false; - } - if(obj == this){ - return true; - } - if(!(obj instanceof PolicyEntity)){ - return false; - } - - PolicyEntity p = (PolicyEntity) obj; - - return ( - policyId == p.policyId && - policyName.equals(p.policyName) && - scope.equals(p.scope) && - version == p.version && - policyVersion == p.policyVersion && - policyData.equals(p.policyData) && - ((configurationDataEntity == null && p.configurationDataEntity == null) || (configurationDataEntity!=null && configurationDataEntity.equals(p.configurationDataEntity))) && - ((actionBodyEntity == null && p.actionBodyEntity == null) || (actionBodyEntity!=null && actionBodyEntity.equals(p.actionBodyEntity))) && - createdBy.equals(p.createdBy) && - createdDate.equals(p.createdDate) && - description.equals(p.description) && - modifiedBy.equals(p.modifiedBy) && - modifiedDate.equals(p.modifiedDate) && - deleted == p.deleted - ); - } - - + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "policyId") + @JsonBackReference + private long policyId; + + @Column(name = "policyName", nullable = false, unique = false, length = 255) + private String policyName; + + // The scope is the directory structure in dot notation. For example: org.onap.myproject + @Column(name = "scope", nullable = false, unique = false, length = 255) + private String scope; + + @Version + @Column(name = "version") + private int version; + + // not going to be used + @Column(name = "policyVersion") + private int policyVersion = 0; + + @Lob + @Column(name = "policyData", nullable = false, columnDefinition = "TEXT") + private String policyData = "NoData"; + + @OneToOne(optional = true, orphanRemoval = true) + @JoinColumn(name = "configurationDataId") + @JsonManagedReference + private ConfigurationDataEntity configurationDataEntity; + + @OneToOne(optional = true, orphanRemoval = true) + @JoinColumn(name = "actionBodyId") + @JsonManagedReference + private ActionBodyEntity actionBodyEntity; + + @Column(name = "created_by", nullable = false, length = 255) + private String createdBy = "guest"; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "created_date", updatable = false) + private Date createdDate; + + @Column(name = "description", nullable = false, length = 2048) + private String description = "NoDescription"; + + @Column(name = "modified_by", nullable = false, length = 255) + private String modifiedBy = "guest"; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "modified_date", nullable = false) + private Date modifiedDate; + + @Column(name = "deleted", nullable = false) + private boolean deleted = false; + + @Column(name = "delete_reason_code", nullable = true, length = 100) + private String deleteReasonCode; + + @Column(name = "deleted_by", nullable = true, length = 45) + private String deletedBy; + + public PolicyEntity() { + super(); + } + + /** + * Set default values. + */ + @PrePersist + public void prePersist() { + Date date = new Date(); + this.createdDate = date; + this.modifiedDate = date; + } + + @PreUpdate + public void preUpdate() { + this.modifiedDate = new Date(); + } + + /** + * Returns configurationDataEntity. + * + * @return the configurationDataEntity + */ + public ConfigurationDataEntity getConfigurationData() { + return configurationDataEntity; + } + + /** + * Set configurationDataEntity. + * + * @param configurationDataEntity the configurationDataEntity to set + */ + public void setConfigurationData(ConfigurationDataEntity configurationDataEntity) { + this.configurationDataEntity = configurationDataEntity; + } }