001
014
015 package com.liferay.portal.kernel.workflow.comparator;
016
017 import com.liferay.portal.kernel.util.OrderByComparator;
018 import com.liferay.portal.kernel.workflow.WorkflowInstance;
019
020 import java.util.Date;
021
022
025 public class WorkflowInstanceEndDateComparator
026 extends OrderByComparator<WorkflowInstance> {
027
028 public WorkflowInstanceEndDateComparator(
029 boolean ascending, String orderByAsc, String orderByDesc,
030 String[] orderByFields) {
031
032 _ascending = ascending;
033 _orderByAsc = orderByAsc;
034 _orderByDesc = orderByDesc;
035 _orderByFields = orderByFields;
036 }
037
038 @Override
039 public int compare(
040 WorkflowInstance workflowInstance1,
041 WorkflowInstance workflowInstance2) {
042
043 Date endDate1 = workflowInstance1.getEndDate();
044 Date endDate2 = workflowInstance2.getEndDate();
045
046 int value = endDate1.compareTo(endDate2);
047
048 if (value == 0) {
049 Long workflowInstanceId1 =
050 workflowInstance1.getWorkflowInstanceId();
051 Long workflowInstanceId2 =
052 workflowInstance2.getWorkflowInstanceId();
053
054 value = workflowInstanceId1.compareTo(workflowInstanceId2);
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 (isAscending()) {
068 return _orderByAsc;
069 }
070 else {
071 return _orderByDesc;
072 }
073 }
074
075 @Override
076 public String[] getOrderByFields() {
077 return _orderByFields;
078 }
079
080 @Override
081 public boolean isAscending() {
082 return _ascending;
083 }
084
085 private final boolean _ascending;
086 private final String _orderByAsc;
087 private final String _orderByDesc;
088 private final String[] _orderByFields;
089
090 }