package fi.arcusys.koku.kv.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import fi.arcusys.koku.users.KokuUser;
public class KokuResponse {
private List<KokuAnswer> answers;
private String name;
private KokuUser replierUser;
private String comment;
public KokuResponse() {
}
public KokuResponse(fi.arcusys.koku.kv.requestservice.Response response) {
if (response == null) {
return;
}
name = response.getName();
replierUser = new KokuUser(response.getReplierUserInfo());
comment = response.getComment();
answers = new ArrayList<KokuAnswer>();
if (response.getAnswers() != null) {
for (fi.arcusys.koku.kv.requestservice.Answer answer : response.getAnswers()) {
answers.add(new KokuAnswer(answer));
}
}
Collections.sort(answers, new Comparator<KokuAnswer>() {
@Override
public int compare(KokuAnswer o1, KokuAnswer o2) {
if (o1.getQuestionNumber() > o2.getQuestionNumber()) {
return 1;
} else if (o1.getQuestionNumber() == o2.getQuestionNumber()) {
return 0;
} else {
return -1;
}
}
});
}
/**
* @return the replierUser
*/
public final KokuUser getReplierUser() {
return replierUser;
}
/**
* @param replierUser the replierUser to set
*/
public final void setReplierUser(KokuUser replierUser) {
this.replierUser = replierUser;
}
public List<KokuAnswer> getAnswers() {
if (answers == null) {
answers = new ArrayList<KokuAnswer>();
}
return answers;
}
public void setAnswers(List<KokuAnswer> answers) {
this.answers = answers;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public final String getComment() {
return comment;
}
public final void setComment(String comment) {
this.comment = comment;
}
@Override
public String toString() {
return "KokuResponse [answers=" + answers + ", name=" + name
+ ", comment=" + comment + "]";
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((answers == null) ? 0 : answers.hashCode());
result = prime * result + ((comment == null) ? 0 : comment.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result
+ ((replierUser == null) ? 0 : replierUser.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;
}
KokuResponse other = (KokuResponse) obj;
if (answers == null) {
if (other.answers != null) {
return false;
}
} else if (!answers.equals(other.answers)) {
return false;
}
if (comment == null) {
if (other.comment != null) {
return false;
}
} else if (!comment.equals(other.comment)) {
return false;
}
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
if (replierUser == null) {
if (other.replierUser != null) {
return false;
}
} else if (!replierUser.equals(other.replierUser)) {
return false;
}
return true;
}
}