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
025 extends OrderByComparator<JournalArticle> {
026
027 public static final String ORDER_BY_ASC =
028 "JournalArticle.reviewDate ASC, JournalArticle.version ASC";
029
030 public static final String ORDER_BY_DESC =
031 "JournalArticle.reviewDate DESC, JournalArticle.version DESC";
032
033 public static final String[] ORDER_BY_FIELDS = {"reviewDate", "version"};
034
035 public ArticleReviewDateComparator() {
036 this(false);
037 }
038
039 public ArticleReviewDateComparator(boolean ascending) {
040 _ascending = ascending;
041 }
042
043 @Override
044 public int compare(JournalArticle article1, JournalArticle article2) {
045 int value = DateUtil.compareTo(
046 article1.getReviewDate(), article2.getReviewDate());
047
048 if (value == 0) {
049 if (article1.getVersion() < article2.getVersion()) {
050 value = -1;
051 }
052 else if (article1.getVersion() > article2.getVersion()) {
053 value = 1;
054 }
055 }
056
057 if (_ascending) {
058 return value;
059 }
060 else {
061 return -value;
062 }
063 }
064
065 @Override
066 public String getOrderBy() {
067 if (_ascending) {
068 return ORDER_BY_ASC;
069 }
070 else {
071 return ORDER_BY_DESC;
072 }
073 }
074
075 @Override
076 public String[] getOrderByFields() {
077 return ORDER_BY_FIELDS;
078 }
079
080 @Override
081 public boolean isAscending() {
082 return _ascending;
083 }
084
085 private final boolean _ascending;
086
087 }