package net.lr.tutorial.karaf.vote.model;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@XmlRootElement
@XmlType
public class Voting {
private static final Logger LOG = LoggerFactory.getLogger(Voting.class);
private String topic;
private List<Vote> votes;
public Voting() {
this.votes = new ArrayList<Vote>();
}
public Voting(String topic) {
this();
this.topic = topic;
}
@XmlElement
public double getAverage() {
int sum = 0;
for (Vote vote : votes) {
sum += vote.getVote();
}
return new Double(sum) / votes.size();
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
@XmlElement(name="vote")
public List<Vote> getVotes() {
return votes;
}
public void addVote(Vote vote) {
this.votes.add(vote);
LOG.info("Adding vote {} on topic {}", vote.getVote(), vote.getTopic());
}
public String getStats() {
VoteStats stats = new VoteStats();
for (Vote vote : votes) {
stats.countVote(vote);
}
return stats.getStats();
}
}