X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-base%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fbase%2FPfTimestampKey.java;h=ea12889e4570c8e2dcd53b052e017b9fda35deb9;hb=refs%2Fchanges%2F05%2F136005%2F1;hp=a2f11290d3d3365cd74b63781f62e55ba5be8654;hpb=f32f276bb5dddfc4d11be9f0c13227547a0110b1;p=policy%2Fmodels.git diff --git a/models-base/src/main/java/org/onap/policy/models/base/PfTimestampKey.java b/models-base/src/main/java/org/onap/policy/models/base/PfTimestampKey.java index a2f11290d..ea12889e4 100644 --- a/models-base/src/main/java/org/onap/policy/models/base/PfTimestampKey.java +++ b/models-base/src/main/java/org/onap/policy/models/base/PfTimestampKey.java @@ -2,7 +2,8 @@ * ============LICENSE_START======================================================= * ONAP Policy Model * ================================================================================ - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021, 2023 Nordix Foundation. + * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. 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,29 +23,39 @@ package org.onap.policy.models.base; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; +import java.io.Serial; +import java.time.Instant; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Embeddable; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; import lombok.NonNull; +import org.onap.policy.common.parameters.annotations.Pattern; import org.onap.policy.common.utils.validation.Assertions; @Embeddable -@Getter +@Data @EqualsAndHashCode(callSuper = false) public class PfTimestampKey extends PfKeyImpl { + @Serial private static final long serialVersionUID = -8410208962541783805L; private static final String TIMESTAMP_TOKEN = "timeStamp"; @Column(name = NAME_TOKEN, length = 120) + @Pattern(regexp = NAME_REGEXP) private String name; @Column(name = VERSION_TOKEN, length = 20) + @Pattern(regexp = VERSION_REGEXP) private String version; - @Column(name = TIMESTAMP_TOKEN) + @Column(name = TIMESTAMP_TOKEN, precision = 3) + @Temporal(TemporalType.TIMESTAMP) + @NonNull private Date timeStamp; @@ -52,7 +63,7 @@ public class PfTimestampKey extends PfKeyImpl { * The default constructor creates a null concept key. */ public PfTimestampKey() { - this(NULL_KEY_NAME, NULL_KEY_VERSION, new Date(0)); + this(NULL_KEY_NAME, NULL_KEY_VERSION, Instant.EPOCH); } /** @@ -62,20 +73,20 @@ public class PfTimestampKey extends PfKeyImpl { */ public PfTimestampKey(@NonNull final PfTimestampKey copyConcept) { super(copyConcept); - this.timeStamp = new Date(copyConcept.getTimeStamp().getTime()); + this.timeStamp = copyConcept.getTimeStamp(); } /** * Constructor to create a key with the specified name and version. * - * @param name the key name + * @param name the key name * @param version the key version - * @param timeStamp the timestamp of key + * @param instant the time stamp of key */ public PfTimestampKey(@NonNull final String name, @NonNull final String version, - @NonNull final Date timeStamp) { + @NonNull final Instant instant) { super(name, version); - this.timeStamp = new Date(timeStamp.getTime()); + this.timeStamp = Date.from(instant); } /** @@ -98,14 +109,16 @@ public class PfTimestampKey extends PfKeyImpl { * * @return a null key */ - public static final PfTimestampKey getNullKey() { - return new PfTimestampKey(PfKey.NULL_KEY_NAME, PfKey.NULL_KEY_VERSION, new Date(0)); + public static PfTimestampKey getNullKey() { + return new PfTimestampKey(PfKey.NULL_KEY_NAME, PfKey.NULL_KEY_VERSION, Instant.EPOCH); } - @Override - public String toString() { - return "PfTimestampKey(name=" + getName() + ", version=" + getVersion() + ", timestamp=" - + getTimeStamp().getTime() + ")"; + public Instant getInstant() { + return timeStamp.toInstant(); + } + + public void setInstant(final Instant instant) { + setTimeStamp(Date.from(instant)); } @Override @@ -125,10 +138,6 @@ public class PfTimestampKey extends PfKeyImpl { return super.isNewerThan(otherKey); } - public void setTimeStamp(@NonNull final Date timeStamp) { - this.timeStamp = new Date(timeStamp.getTime()); - } - @Override public boolean isNullKey() { return super.isNullKey() && getTimeStamp().getTime() == 0; @@ -153,4 +162,5 @@ public class PfTimestampKey extends PfKeyImpl { public void setVersion(@NonNull String version) { this.version = Assertions.validateStringParameter(VERSION_TOKEN, version, getVersionRegEx()); } + }