001
014
015 package com.liferay.portlet.journal.util.comparator;
016
017 import com.liferay.portal.kernel.util.DateUtil;
018 import com.liferay.portal.kernel.util.OrderByComparator;
019 import com.liferay.portlet.journal.model.JournalArticle;
020
021
024 public class ArticleReviewDateComparator extends OrderByComparator {
025
026 public static String ORDER_BY_ASC = "reviewDate ASC, version ASC";
027
028 public static String ORDER_BY_DESC = "reviewDate DESC, version DESC";
029
030 public static String[] ORDER_BY_FIELDS = {"reviewDate", "version"};
031
032 public ArticleReviewDateComparator() {
033 this(false);
034 }
035
036 public ArticleReviewDateComparator(boolean ascending) {
037 _ascending = ascending;
038 }
039
040 public int compare(Object obj1, Object obj2) {
041 JournalArticle article1 = (JournalArticle)obj1;
042 JournalArticle article2 = (JournalArticle)obj2;
043
044 int value = DateUtil.compareTo(
045 article1.getReviewDate(), article2.getReviewDate());
046
047 if (value == 0) {
048 if (article1.getVersion() < article2.getVersion()) {
049 value = -1;
050 }
051 else if (article1.getVersion() > article2.getVersion()) {
052 value = 1;
053 }
054 }
055
056 if (_ascending) {
057 return value;
058 }
059 else {
060 return -value;
061 }
062 }
063
064 public String getOrderBy() {
065 if (_ascending) {
066 return ORDER_BY_ASC;
067 }
068 else {
069 return ORDER_BY_DESC;
070 }
071 }
072
073 public String[] getOrderByFields() {
074 return ORDER_BY_FIELDS;
075 }
076
077 public boolean isAscending() {
078 return _ascending;
079 }
080
081 private boolean _ascending;
082
083 }