-
Jack MacLauchlan CS2015 authoredJack MacLauchlan CS2015 authored
Issue.java 3.01 KiB
package issueData;
import org.apache.commons.codec.digest.DigestUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class Issue {
private String title;
private String description;
private String creator;
private String originalHash;
private List<Comment> comments;
private boolean status;
private long creationTime;
private long edited;
public Issue(String title, String description) {
this.title = title;
this.description = description;
this.status = true;
long time = System.currentTimeMillis();
this.creationTime = time + 1; //Lamport timestamps
this.edited = time + 1;
this.originalHash = DigestUtils.sha256Hex(title + description + creationTime);
this.comments = new ArrayList<>();
}
public Issue() {
comments = new ArrayList<>();
}
private void edited() {
edited = System.currentTimeMillis();
}
public long getCreationTime() {
return creationTime;
}
public void setCreationTime(long creationTime) {
this.creationTime = creationTime;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getOriginalHash() {
return originalHash;
}
public void setOriginalHash(String originalHash) {
this.originalHash = originalHash;
}
public void addComment(Comment comment) {
comments.add(comment);
}
public List<Comment> getComments() {
return comments;
}
public long getEdited() {
return edited;
}
public void setEdited(long edited) {
this.edited = edited;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public boolean isopen() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public void write() {
IssueWriter writer = new IssueWriter(this);
writer.write();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Issue issue = (Issue) o;
return creationTime == issue.creationTime &&
Objects.equals(title, issue.title) &&
Objects.equals(description, issue.description) &&
Objects.equals(creator, issue.creator) &&
Objects.equals(originalHash, issue.originalHash);
}
@Override
public int hashCode() {
return Objects.hash(title, description, creator, originalHash, creationTime);
}
@Override
public String toString() {
return "Hash: " + originalHash + " Title: " + title;
}
}