Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-sdc-versioning-lib / openecomp-sdc-versioning-api / src / main / java / org / openecomp / sdc / versioning / dao / types / Version.java
index 82b79c6..b1f0b71 100644 (file)
@@ -22,23 +22,44 @@ package org.openecomp.sdc.versioning.dao.types;
 
 import com.datastax.driver.mapping.annotations.Transient;
 import com.datastax.driver.mapping.annotations.UDT;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
+
+import java.util.Date;
+import java.util.Map;
 
 @UDT(name = "version", keyspace = "dox")
 public class Version {
-  private static final Logger logger = LoggerFactory.getLogger(Version.class);
   public static final String VERSION_STRING_VIOLATION_MSG =
       "Version string must be in the format of: {integer}.{integer}";
 
-  private int major;
-  private int minor;
   @Transient
-  private VersionStatus status = VersionStatus.Available;
+  private String id;
+  private int major; // TODO: 6/7/2017 remove!
+  private int minor; // TODO: 6/7/2017 remove!
+  @Transient
+  private String name;
+  @Transient
+  private String description;
+  @Transient
+  private String baseId;
+  @Transient
+  private Date creationTime;
+  @Transient
+  private Date modificationTime;
+  @Transient
+  private VersionStatus status = VersionStatus.Draft;
+  @Transient
+  private VersionState state;
+  @Transient
+  private Map<String, Object> additionalInfo;
 
   public Version() {
   }
 
+  public Version(String id) {
+    this.id = id;
+  }
+
+  @Deprecated
   public Version(int major, int minor) {
     this.major = major;
     this.minor = minor;
@@ -62,7 +83,6 @@ public class Version {
     try {
       version = new Version(Integer.parseInt(versionLevels[0]), Integer.parseInt(versionLevels[1]));
     } catch (Exception ex) {
-      logger.debug(ex.getMessage(), ex);
       throw new IllegalArgumentException(VERSION_STRING_VIOLATION_MSG);
     }
 
@@ -85,6 +105,54 @@ public class Version {
     this.minor = minor;
   }
 
+  public String getId() {
+    return id;
+  }
+
+  public void setId(String id) {
+    this.id = id;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public String getBaseId() {
+    return baseId;
+  }
+
+  public void setBaseId(String baseId) {
+    this.baseId = baseId;
+  }
+
+  public Date getCreationTime() {
+    return creationTime;
+  }
+
+  public void setCreationTime(Date creationTime) {
+    this.creationTime = creationTime;
+  }
+
+  public Date getModificationTime() {
+    return modificationTime;
+  }
+
+  public void setModificationTime(Date modificationTime) {
+    this.modificationTime = modificationTime;
+  }
+
   public VersionStatus getStatus() {
     return status;
   }
@@ -93,6 +161,14 @@ public class Version {
     this.status = status;
   }
 
+  public VersionState getState() {
+    return state;
+  }
+
+  public void setState(VersionState state) {
+    this.state = state;
+  }
+
   public Version calculateNextCandidate() {
     return new Version(major, minor + 1);
   }
@@ -105,6 +181,14 @@ public class Version {
     return major != 0 && minor == 0;
   }
 
+  public Map<String, Object> getAdditionalInfo() {
+    return additionalInfo;
+  }
+
+  public void setAdditionalInfo(Map<String, Object> additionalInfo) {
+    this.additionalInfo = additionalInfo;
+  }
+
   @Override
   public int hashCode() {
     int result = major;
@@ -138,6 +222,21 @@ public class Version {
 
   @Override
   public String toString() {
-    return major + "." + minor;
+    return name != null ? name : major + "." + minor;
+  }
+
+  @Override
+  public Version clone() {
+    Version version = new Version();
+    version.setStatus(this.getStatus());
+    version.setCreationTime(this.getCreationTime());
+    version.setName(this.getName());
+    version.setBaseId(this.getBaseId());
+    version.setMajor(this.major);
+    version.setMinor(this.minor);
+    version.setModificationTime(this.getModificationTime());
+    version.setDescription(this.description);
+    version.setId(this.getId());
+    return version;
   }
-}
+}
\ No newline at end of file