package fi.arcusys.koku.kv.model; import java.util.ArrayList; import java.util.List; import fi.arcusys.koku.users.KokuUser; import fi.arcusys.koku.util.MessageUtil; /** * Request data model * @author Jinhua Chen * Aug 22, 2011 */ public class KokuRequest { private long requestId; private String sender; private String subject; private String content; private int respondedAmount; private int missedAmount; private String creationDate; private String endDate; private String requestType; private List<KokuResponse> respondedList; private List<KokuUser> unrespondedList; private List<KokuQuestion> questions; public KokuRequest() { } public KokuRequest(fi.arcusys.koku.kv.requestservice.RequestSummary reqSum) { if (reqSum == null) { return; } requestId = reqSum.getRequestId(); sender = reqSum.getSender(); subject = reqSum.getSubject(); respondedAmount = reqSum.getRespondedAmount(); missedAmount = reqSum.getMissedAmout(); creationDate = MessageUtil.formatTaskDateByDay(reqSum.getCreationDate()); endDate = MessageUtil.formatTaskDateByDay(reqSum.getEndDate()); } public KokuRequest(fi.arcusys.koku.kv.requestservice.Request req) { this((fi.arcusys.koku.kv.requestservice.RequestSummary) req); if (req == null) { return; } content = req.getContent(); if (req.getNotRespondedUserInfos() != null) { for (fi.arcusys.koku.kv.requestservice.User user : req.getNotRespondedUserInfos()) { getUnrespondedList().add(new KokuUser(user)); } } if (req.getResponses() != null) { for (fi.arcusys.koku.kv.requestservice.Response response : req.getResponses()) { getRespondedList().add(new KokuResponse(response)); } } if (req.getQuestions() != null) { for (fi.arcusys.koku.kv.requestservice.Question question : req.getQuestions()) { getQuestions().add(new KokuQuestion(question)); } } } public long getRequestId() { return requestId; } public void setRequestId(long requestId) { this.requestId = requestId; } public String getSender() { return sender; } public void setSender(String sender) { this.sender = sender; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getRespondedAmount() { return respondedAmount; } public void setRespondedAmount(int respondedAmount) { this.respondedAmount = respondedAmount; } public int getMissedAmount() { return missedAmount; } public void setMissedAmount(int missedAmount) { this.missedAmount = missedAmount; } public String getCreationDate() { return creationDate; } public void setCreationDate(String creationDate) { this.creationDate = creationDate; } public String getEndDate() { return endDate; } public void setEndDate(String endDate) { this.endDate = endDate; } public String getRequestType() { return requestType; } public void setRequestType(String requestType) { this.requestType = requestType; } public final List<KokuResponse> getRespondedList() { if (respondedList== null) { respondedList = new ArrayList<KokuResponse>(); } return respondedList; } public final void setRespondedList(List<KokuResponse> respondedList) { this.respondedList = respondedList; } public final List<KokuUser> getUnrespondedList() { if (unrespondedList == null) { unrespondedList = new ArrayList<KokuUser>(); } return unrespondedList; } public final void setUnrespondedList(List<KokuUser> unrespondedList) { this.unrespondedList = unrespondedList; } public final List<KokuQuestion> getQuestions() { if (questions == null) { questions = new ArrayList<KokuQuestion>(); } return questions; } public final void setQuestions(List<KokuQuestion> questions) { this.questions = questions; } @Override public String toString() { return "KokuRequest [requestId=" + requestId + ", sender=" + sender + ", subject=" + subject + ", content=" + content + ", respondedAmount=" + respondedAmount + ", missedAmount=" + missedAmount + ", creationDate=" + creationDate + ", endDate=" + endDate + ", requestType=" + requestType + ", respondedList=" + respondedList + ", unrespondedList=" + unrespondedList + ", questions=" + questions + "]"; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((content == null) ? 0 : content.hashCode()); result = prime * result + ((creationDate == null) ? 0 : creationDate.hashCode()); result = prime * result + ((endDate == null) ? 0 : endDate.hashCode()); result = prime * result + missedAmount; result = prime * result + ((questions == null) ? 0 : questions.hashCode()); result = prime * result + (int) (requestId ^ (requestId >>> 32)); result = prime * result + ((requestType == null) ? 0 : requestType.hashCode()); result = prime * result + respondedAmount; result = prime * result + ((respondedList == null) ? 0 : respondedList.hashCode()); result = prime * result + ((sender == null) ? 0 : sender.hashCode()); result = prime * result + ((subject == null) ? 0 : subject.hashCode()); result = prime * result + ((unrespondedList == null) ? 0 : unrespondedList.hashCode()); return result; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } KokuRequest other = (KokuRequest) obj; if (content == null) { if (other.content != null) { return false; } } else if (!content.equals(other.content)) { return false; } if (creationDate == null) { if (other.creationDate != null) { return false; } } else if (!creationDate.equals(other.creationDate)) { return false; } if (endDate == null) { if (other.endDate != null) { return false; } } else if (!endDate.equals(other.endDate)) { return false; } if (missedAmount != other.missedAmount) { return false; } if (questions == null) { if (other.questions != null) { return false; } } else if (!questions.equals(other.questions)) { return false; } if (requestId != other.requestId) { return false; } if (requestType == null) { if (other.requestType != null) { return false; } } else if (!requestType.equals(other.requestType)) { return false; } if (respondedAmount != other.respondedAmount) { return false; } if (respondedList == null) { if (other.respondedList != null) { return false; } } else if (!respondedList.equals(other.respondedList)) { return false; } if (sender == null) { if (other.sender != null) { return false; } } else if (!sender.equals(other.sender)) { return false; } if (subject == null) { if (other.subject != null) { return false; } } else if (!subject.equals(other.subject)) { return false; } if (unrespondedList == null) { if (other.unrespondedList != null) { return false; } } else if (!unrespondedList.equals(other.unrespondedList)) { return false; } return true; } }