diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lq/ImportQuotes.java | 5 | ||||
-rw-r--r-- | src/lq/Printer.java | 2 | ||||
-rw-r--r-- | src/lq/Quote.java | 20 | ||||
-rw-r--r-- | src/lq/Vote.java | 8 |
4 files changed, 22 insertions, 13 deletions
diff --git a/src/lq/ImportQuotes.java b/src/lq/ImportQuotes.java index 30ad811..d750b7b 100644 --- a/src/lq/ImportQuotes.java +++ b/src/lq/ImportQuotes.java @@ -148,9 +148,10 @@ public class ImportQuotes extends HttpServlet { Date timestamp = lq.DateUtil.timestampFormat.parse(getChildWithName("time", voteRow)); String ip = getChildWithName("ip", voteRow); - Vote vote = new Vote(rating, ip); + Vote vote = new Vote(quoteId, rating, ip); vote.setTimestamp(timestamp); - quote.getVotes().add(vote); + quote.setSumVotes(quote.getSumVotes() + rating); + quote.setNumVotes(quote.getNumVotes() + 1); return vote; } diff --git a/src/lq/Printer.java b/src/lq/Printer.java index 7677450..e5bdc0b 100644 --- a/src/lq/Printer.java +++ b/src/lq/Printer.java @@ -21,7 +21,7 @@ public class Printer { String date = DateUtil.dateFormat.format(quote.getQuoteDate()); out.println("Dato: " + date + ", Score: "); out.println("<span id=\"v" + quote.getId() + "\">"); - out.println((score==null?"-":(score+ " (fra " + quote.getVotes().size() +")"))); + out.println((score==null?"-":(score+ " (fra " + quote.getNumVotes() +")"))); out.println("<br> Vote: <font size=\"-1\">"); for(int nv=1; nv<=5; nv++) out.println("<a href=\"javascript:ajaxvote(" + quote.getId() + ","+nv+")\">"+nv+"</a> "); diff --git a/src/lq/Quote.java b/src/lq/Quote.java index 1d62a25..f4dfde0 100644 --- a/src/lq/Quote.java +++ b/src/lq/Quote.java @@ -37,24 +37,23 @@ public class Quote { private String ip; @Persistent - private List<Vote> votes; + private double sumVotes; + + @Persistent + private int numVotes; public Quote(Date quoteDate, String author, String content, String ip) { this.quoteDate = quoteDate; this.author = author; this.content = new Text(content); this.ip = ip; - this.votes = new ArrayList<Vote>(); - + this.sumVotes = 0.0; + this.numVotes = 0; this.timestamp = new Date(); } public Double getScore() { - Double score = 0.0; - for (Vote vote : getVotes()) { - score = score + vote.getRating() / getVotes().size(); - } - return score; + return (getNumVotes() > 0.0 ? getSumVotes()/getNumVotes() : 0.0); } public Long getId() { return id; } @@ -64,7 +63,8 @@ public class Quote { public String getAuthor() { return author; } public String getContent() { return content.getValue(); } public String getIp() { return ip; } - public List<Vote> getVotes() { return votes; } + public Double getSumVotes() { return sumVotes; } + public int getNumVotes() { return numVotes; } public void setId(Long id) { this.id = id; } public void setTimestamp(Date timestamp) { this.timestamp = timestamp; } @@ -73,4 +73,6 @@ public class Quote { public void setAuthor(String author) { this.author = author; } public void setContent(String content) { this.content = new Text(content); } public void setIp(String ip) { this.ip = ip; } + public void setSumVotes(double sumVotes) { this.sumVotes = sumVotes; } + public void setNumVotes(int numVotes) { this.numVotes = numVotes; } } diff --git a/src/lq/Vote.java b/src/lq/Vote.java index 830b0cc..ee7c18d 100644 --- a/src/lq/Vote.java +++ b/src/lq/Vote.java @@ -15,6 +15,9 @@ public class Vote { private Key key; @Persistent + private Long quoteId; + + @Persistent private Long rating; @Persistent @@ -23,9 +26,10 @@ public class Vote { @Persistent private String ip; - public Vote(Long rating, String ip) { + public Vote(Long quoteId, Long rating, String ip) { this.ip = ip; this.rating = rating; + this.quoteId = quoteId; timestamp = new Date(); } @@ -33,9 +37,11 @@ public class Vote { public Date getTimestamp() { return timestamp; } public String getIp() { return ip; } public Long getRating() { return rating; } + public Long getQuoteId() { return quoteId; } public void setKey(Key key) { this.key = key; } public void setTimestamp(Date timestamp) { this.timestamp = timestamp; } public void setIp(String ip) { this.ip = ip; } public void setRating(Long rating) { this.rating = rating; } + public void setQuote(Long quoteId) { this.quoteId = quoteId; } } |