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 public int compare(
034 NotificationEvent notificationEvent1,
035 NotificationEvent notificationEvent2) {
036
037 if (notificationEvent1.equals(notificationEvent2)) {
038 return 0;
039 }
040
041 long value =
042 notificationEvent1.getDeliverBy() -
043 notificationEvent2.getDeliverBy();
044
045 if (value == 0) {
046 value =
047 notificationEvent1.getTimestamp() -
048 notificationEvent2.getTimestamp();
049 }
050
051 if (value == 0) {
052 value =
053 notificationEvent1.hashCode() - notificationEvent2.hashCode();
054 }
055
056 if (_ascending) {
057 return (int)value;
058 }
059 else {
060 return (int)-value;
061 }
062 }
063
064 private boolean _ascending;
065
066 }