Java 17 Upgrade
[policy/models.git] / models-base / src / main / java / org / onap / policy / models / base / PfTimestampKey.java
index a2f1129..ea12889 100644 (file)
@@ -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.
 
 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());
     }
+
 }