Replace copyTo methods with copy constructors
[policy/models.git] / models-base / src / main / java / org / onap / policy / models / base / PfConceptKey.java
index 84239e5..f5baae7 100644 (file)
@@ -1,6 +1,7 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 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.
@@ -26,9 +27,10 @@ import java.util.List;
 import javax.persistence.Column;
 import javax.persistence.Embeddable;
 
-import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.Getter;
 import lombok.NonNull;
+import lombok.ToString;
 
 import org.onap.policy.common.utils.validation.Assertions;
 import org.onap.policy.models.base.PfValidationResult.ValidationResult;
@@ -42,7 +44,8 @@ import org.onap.policy.models.base.PfValidationResult.ValidationResult;
  * regular expressions respectively.
  */
 @Embeddable
-@Data
+@Getter
+@ToString
 @EqualsAndHashCode(callSuper = false)
 public class PfConceptKey extends PfKey {
     private static final long serialVersionUID = 8932717618579392561L;
@@ -50,10 +53,10 @@ public class PfConceptKey extends PfKey {
     private static final String NAME_TOKEN = "name";
     private static final String VERSION_TOKEN = "version";
 
-    @Column(name = NAME_TOKEN, length = 128)
+    @Column(name = NAME_TOKEN, length = 120)
     private String name;
 
-    @Column(name = VERSION_TOKEN, length = 128)
+    @Column(name = VERSION_TOKEN, length = 20)
     private String version;
 
     /**
@@ -70,6 +73,8 @@ public class PfConceptKey extends PfKey {
      */
     public PfConceptKey(@NonNull final PfConceptKey copyConcept) {
         super(copyConcept);
+        this.name = copyConcept.name;
+        this.version = copyConcept.version;
     }
 
     /**
@@ -117,6 +122,14 @@ public class PfConceptKey extends PfKey {
         return this;
     }
 
+    public void setName(@NonNull final String name) {
+        this.name = Assertions.validateStringParameter(NAME_TOKEN, name, NAME_REGEXP);
+    }
+
+    public void setVersion(@NonNull final String version) {
+        this.version = Assertions.validateStringParameter(VERSION_TOKEN, version, VERSION_REGEXP);
+    }
+
     @Override
     public List<PfKey> getKeys() {
         final List<PfKey> keyList = new ArrayList<>();
@@ -134,6 +147,15 @@ public class PfConceptKey extends PfKey {
         return this.equals(PfConceptKey.getNullKey());
     }
 
+    /**
+     * Determines if the version is "null".
+     *
+     * @return {@code true} if the version is null, {@code false} otherwise
+     */
+    public boolean isNullVersion() {
+        return PfKey.NULL_KEY_VERSION.equals(getVersion());
+    }
+
     @Override
     public PfKey.Compatibility getCompatibility(@NonNull final PfKey otherKey) {
         if (!(otherKey instanceof PfConceptKey)) {
@@ -195,17 +217,17 @@ public class PfConceptKey extends PfKey {
 
         // There must always be at least one element in each version
         if (!thisVersionArray[0].equals(otherVersionArray[0])) {
-            return thisVersionArray[0].compareTo(otherVersionArray[0]) > 0;
+            return Integer.valueOf(thisVersionArray[0]) > Integer.valueOf(otherVersionArray[0]);
         }
 
         if (thisVersionArray.length >= 2 && otherVersionArray.length >= 2
                         && !thisVersionArray[1].equals(otherVersionArray[1])) {
-            return thisVersionArray[1].compareTo(otherVersionArray[1]) > 0;
+            return Integer.valueOf(thisVersionArray[1]) > Integer.valueOf(otherVersionArray[1]);
         }
 
         if (thisVersionArray.length >= 3 && otherVersionArray.length >= 3
                         && !thisVersionArray[2].equals(otherVersionArray[2])) {
-            return thisVersionArray[2].compareTo(otherVersionArray[2]) > 0;
+            return Integer.valueOf(thisVersionArray[2]) > Integer.valueOf(otherVersionArray[2]);
         }
 
         return false;
@@ -268,20 +290,6 @@ public class PfConceptKey extends PfKey {
         version = Assertions.validateStringParameter(VERSION_TOKEN, version, VERSION_REGEXP);
     }
 
-    @Override
-    public PfConcept copyTo(final PfConcept target) {
-        Assertions.argumentNotNull(target, "target may not be null");
-
-        final PfConcept copyObject = target;
-        Assertions.instanceOf(copyObject, PfConceptKey.class);
-
-        final PfConceptKey copy = ((PfConceptKey) copyObject);
-        copy.setName(name);
-        copy.setVersion(version);
-
-        return copyObject;
-    }
-
     @Override
     public int compareTo(@NonNull final PfConcept otherObj) {
         Assertions.argumentNotNull(otherObj, "comparison object may not be null");
@@ -290,7 +298,7 @@ public class PfConceptKey extends PfKey {
             return 0;
         }
         if (getClass() != otherObj.getClass()) {
-            return this.hashCode() - otherObj.hashCode();
+            return getClass().getName().compareTo(otherObj.getClass().getName());
         }
 
         final PfConceptKey other = (PfConceptKey) otherObj;