aboutsummaryrefslogtreecommitdiffstats
path: root/models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java
diff options
context:
space:
mode:
Diffstat (limited to 'models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java')
-rw-r--r--models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java83
1 files changed, 63 insertions, 20 deletions
diff --git a/models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java b/models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java
index e151441da..35e385637 100644
--- a/models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java
+++ b/models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,28 +22,36 @@
package org.onap.policy.models.pap.persistence.concepts;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
import javax.persistence.Index;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
+import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import lombok.NonNull;
import org.apache.commons.lang3.builder.CompareToBuilder;
+import org.onap.policy.common.parameters.BeanValidationResult;
+import org.onap.policy.common.parameters.ValidationStatus;
+import org.onap.policy.common.parameters.annotations.Pattern;
import org.onap.policy.common.utils.validation.Assertions;
import org.onap.policy.models.base.PfAuthorative;
import org.onap.policy.models.base.PfConcept;
-import org.onap.policy.models.base.PfGeneratedIdKey;
+import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.base.PfKey;
import org.onap.policy.models.base.PfReferenceKey;
-import org.onap.policy.models.base.validation.annotations.VerifyKey;
+import org.onap.policy.models.base.Validated;
import org.onap.policy.models.pap.concepts.PolicyAudit;
import org.onap.policy.models.pap.concepts.PolicyAudit.AuditAction;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
@@ -62,11 +70,24 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAudit> {
private static final long serialVersionUID = -2935734300607322191L;
- @EmbeddedId
- @Column
- @NotNull
- @VerifyKey(versionNotNull = true)
- private PfGeneratedIdKey key;
+ @Id
+ @Column(name = "ID")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "auditIdGen")
+ @TableGenerator(
+ name = "auditIdGen",
+ table = "sequence",
+ pkColumnName = "SEQ_NAME",
+ valueColumnName = "SEQ_COUNT",
+ pkColumnValue = "SEQ_GEN")
+ private Long generatedId;
+
+ @Column(name = "name", length = 120)
+ @Pattern(regexp = PfKey.NAME_REGEXP)
+ private String name;
+
+ @Column(name = "version", length = 20)
+ @Pattern(regexp = PfKey.VERSION_REGEXP)
+ private String version;
@Column
private String pdpGroup;
@@ -90,7 +111,8 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
* Default constructor.
*/
public JpaPolicyAudit() {
- key = new PfGeneratedIdKey();
+ this.setName(PfKey.NULL_KEY_NAME);
+ this.setVersion(PfKey.NULL_KEY_VERSION);
}
/**
@@ -108,7 +130,9 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
* @param copyConcept original entity to be copied
*/
public JpaPolicyAudit(JpaPolicyAudit copyConcept) {
- this.key = new PfGeneratedIdKey(copyConcept.getKey());
+ this.name = copyConcept.name;
+ this.version = copyConcept.version;
+ this.generatedId = copyConcept.generatedId;
this.pdpGroup = copyConcept.getPdpGroup();
this.pdpType = copyConcept.getPdpType();
this.action = copyConcept.getAction();
@@ -132,7 +156,9 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
// @formatter:off
return new CompareToBuilder()
- .append(key, other.key)
+ .append(name, other.name)
+ .append(version, other.version)
+ .append(generatedId, other.generatedId)
.append(pdpGroup, other.pdpGroup)
.append(pdpType, other.pdpType)
.append(action, other.action)
@@ -144,11 +170,11 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
@Override
public PolicyAudit toAuthorative() {
- var policyIdent = new ToscaConceptIdentifier(key.getName(), key.getVersion());
+ var policyIdent = new ToscaConceptIdentifier(name, version);
// @formatter:off
return PolicyAudit.builder()
- .auditId(key.getGeneratedId())
+ .auditId(generatedId)
.pdpGroup(pdpGroup)
.pdpType(pdpType)
.policy(policyIdent)
@@ -163,11 +189,13 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
public void fromAuthorative(PolicyAudit authorativeConcept) {
if (authorativeConcept.getPolicy() != null) {
final ToscaConceptIdentifier policy = authorativeConcept.getPolicy();
- key = new PfGeneratedIdKey(policy.getName(), policy.getVersion(), authorativeConcept.getAuditId());
+ this.setName(policy.getName());
+ this.setVersion(policy.getVersion());
} else {
- key = new PfGeneratedIdKey();
+ this.setName(PfKey.NULL_KEY_NAME);
+ this.setVersion(PfKey.NULL_KEY_VERSION);
}
-
+ this.setGeneratedId(authorativeConcept.getAuditId());
pdpGroup = authorativeConcept.getPdpGroup();
pdpType = authorativeConcept.getPdpType();
action = authorativeConcept.getAction();
@@ -176,17 +204,32 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
user = authorativeConcept.getUser();
}
+
@Override
public List<PfKey> getKeys() {
- return getKey().getKeys();
+ final List<PfKey> keyList = new ArrayList<>();
+ keyList.add(getKey());
+ return keyList;
}
@Override
- public void clean() {
- key.clean();
+ public PfKey getKey() {
+ return new PfConceptKey(name, version);
+ }
+ @Override
+ public void clean() {
pdpGroup = Assertions.validateStringParameter("pdpGroup", pdpGroup, PfReferenceKey.LOCAL_NAME_REGEXP);
pdpType = Assertions.validateStringParameter("pdpType", pdpType, PfReferenceKey.LOCAL_NAME_REGEXP);
user = Assertions.validateStringParameter("user", user, PfReferenceKey.LOCAL_NAME_REGEXP);
}
+
+ @Override
+ public BeanValidationResult validate(@NonNull String fieldName) {
+ BeanValidationResult result = super.validate(fieldName);
+ if (PfKey.NULL_KEY_NAME.equals(name)) {
+ result.addResult("name", name, ValidationStatus.INVALID, Validated.IS_NULL);
+ }
+ return result;
+ }
}