package nl.topicus.onderwijs.dashboard.datatypes; import java.io.IOException; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; import nl.topicus.onderwijs.dashboard.keys.Key; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.mantisbt.connect.model.IIssueHeader; public class Issue implements Serializable { private static final long serialVersionUID = 1L; private static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat( "dd-MM-yyyy HH:mm"); private Date dateTime; private IssueStatus status; private IssuePriority priority; private IssueSeverity severity; private long id; private String summary; private Key project; public Issue() { } public Issue(Key project, IIssueHeader issue) { this.project = project; this.status = IssueStatus.get(issue.getStatus()); this.priority = IssuePriority.get(issue.getPriority()); this.severity = IssueSeverity.get(issue.getSeverity()); this.id = issue.getId(); this.summary = issue.getSummary(); this.dateTime = issue.getDateLastUpdated(); } public Date getDateTime() { return dateTime; } public void setDateTime(Date dateTime) { this.dateTime = dateTime; } public String getTime() { return TIME_FORMAT.format(getDateTime()); } public long getId() { return id; } public void setId(long id) { this.id = id; } public Key getProject() { return project; } public void setProject(Key project) { this.project = project; } public IssueStatus getStatus() { return status; } public void setStatus(IssueStatus status) { this.status = status; } public IssuePriority getPriority() { return priority; } public void setPriority(IssuePriority priority) { this.priority = priority; } public IssueSeverity getSeverity() { return severity; } public void setSeverity(IssueSeverity severity) { this.severity = severity; } public String getProjectName() { return getProject().getName(); } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } @Override public String toString() { ObjectMapper mapper = new ObjectMapper(); try { return mapper.writeValueAsString(this); } catch (JsonGenerationException e) { throw new RuntimeException(e); } catch (JsonMappingException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } public String getKey() { StringBuilder ret = new StringBuilder(); ret.append(Long.MAX_VALUE - getDateTime().getTime()); ret.append('-'); ret.append(getProject().getCode()); ret.append('-'); ret.append(getId()); return ret.toString(); } }