001
014
015 package com.liferay.portal.kernel.notifications;
016
017 import java.util.Comparator;
018
019
022 public class NotificationEventComparator
023 implements Comparator<NotificationEvent> {
024
025 public NotificationEventComparator() {
026 this(true);
027 }
028
029 public NotificationEventComparator(boolean ascending) {
030 _ascending = ascending;
031 }
032
033 @Override
034 public int compare(
035 NotificationEvent notificationEvent1,
036 NotificationEvent notificationEvent2) {
037
038 if (notificationEvent1.equals(notificationEvent2)) {
039 return 0;
040 }
041
042 long value =
043 notificationEvent1.getDeliverBy() -
044 notificationEvent2.getDeliverBy();
045
046 if (value == 0) {
047 value =
048 notificationEvent1.getTimestamp() -
049 notificationEvent2.getTimestamp();
050 }
051
052 if (value == 0) {
053 value =
054 notificationEvent1.hashCode() - notificationEvent2.hashCode();
055 }
056
057 if (_ascending) {
058 return (int)value;
059 }
060 else {
061 return (int)-value;
062 }
063 }
064
065 private boolean _ascending;
066
067 }