diff options
Diffstat (limited to 'src/lq/QuoteUtils.java')
-rw-r--r-- | src/lq/QuoteUtils.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/lq/QuoteUtils.java b/src/lq/QuoteUtils.java new file mode 100644 index 0000000..f19dbf6 --- /dev/null +++ b/src/lq/QuoteUtils.java @@ -0,0 +1,54 @@ +package lq; + +import java.util.Collections; +import java.util.List; +import java.util.Comparator; +import javax.jdo.PersistenceManager; +import javax.jdo.Query; + +public class QuoteUtils { + public static List<Quote> getQuotes() { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + List<Quote> quotes = (List<Quote>) pm.newQuery(Quote.class).execute(); + pm.retrieveAll(quotes); + return quotes; + } + finally { + pm.close(); + } + } + + public static List<Quote> getQuotesOrderedByIdDesc() { + List<Quote> quotes = getQuotes(); + Collections.sort(quotes, + new Comparator<Quote>() { + public int compare(Quote q1, Quote q2) { + return Long.signum(q2.getId() - q1.getId()); + } + }); + return quotes; + } + + public static List<Quote> getQuotesOrderedByScoreDesc() { + List<Quote> quotes = getQuotes(); + Collections.sort(quotes, + new Comparator<Quote>() { + public int compare(Quote q1, Quote q2) { + throw new RuntimeException("Score ordering not yet implemented"); + } + }); + return quotes; + } + + public static List<Quote> getQuotesOrderedByDateDesc() { + List<Quote> quotes = getQuotes(); + Collections.sort(quotes, + new Comparator<Quote>() { + public int compare(Quote q1, Quote q2) { + return q2.getQuoteDate().compareTo(q1.getQuoteDate()); + } + }); + return quotes; + } +} |