Author: bleny Date: 2013-04-08 15:38:09 +0200 (Mon, 08 Apr 2013) New Revision: 78 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: more implementations of requested articles service Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java 2013-04-05 13:22:46 UTC (rev 77) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java 2013-04-08 13:38:09 UTC (rev 78) @@ -4,6 +4,7 @@ import org.apache.commons.collections.comparators.BooleanComparator; import java.util.Comparator; +import java.util.Map; public class RequestedArticles { @@ -13,9 +14,48 @@ public int compare(RequestedArticle x, RequestedArticle y) { return BooleanComparator.getTrueFirstComparator().compare(x.isUrgent(), y.isUrgent()); } + } + protected static class RequestDateFistComparator implements Comparator<RequestedArticle> { + + @Override + public int compare(RequestedArticle x, RequestedArticle y) { + return x.getRequestDate().compareTo(y.getRequestDate()); + } + + } + + protected static class FinishEarlyFirstComparator implements Comparator<RequestedArticle> { + + protected Map<String, Integer> requestListToArticleRemainingCount; + + // TODO brendan 05/04/13 something to do here + + protected int getRemainingCount(RequestedArticle requestedArticle) { + Integer remainingCount = requestListToArticleRemainingCount.get(requestedArticle.getRequestList()); + return remainingCount == null ? Integer.MAX_VALUE : remainingCount; + } + + @Override + public int compare(RequestedArticle x, RequestedArticle y) { + return 0; +// int xRemainingCount = getRemainingCount(x); +// int yRemainingCount = getRemainingCount(y); +// return xRemainingCount - yRemainingCount; + } + + } + public static Comparator<RequestedArticle> urgentFirstComparator() { return new UrgentFirstComparator(); } + + public static Comparator<RequestedArticle> requestDateFirstComparator() { + return new RequestDateFistComparator(); + } + + public static Comparator<RequestedArticle> finishEarlyFirstComparator() { + return new FinishEarlyFirstComparator(); + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 13:22:46 UTC (rev 77) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-08 13:38:09 UTC (rev 78) @@ -159,7 +159,9 @@ Comparator<RequestedArticle> priorityComparator = Ordering.compound( Lists.newArrayList( - RequestedArticles.urgentFirstComparator() + RequestedArticles.finishEarlyFirstComparator(), + RequestedArticles.urgentFirstComparator(), + RequestedArticles.requestDateFirstComparator() ) );