001
014
015 package com.liferay.portal.util.comparator;
016
017 import com.liferay.portal.kernel.util.OrderByComparator;
018 import com.liferay.portal.model.User;
019
020
023 public class UserJobTitleComparator extends OrderByComparator {
024
025 public static final String ORDER_BY_ASC =
026 "jobTitle ASC, lastName ASC, firstName ASC, middleName ASC";
027
028 public static final String ORDER_BY_DESC =
029 "jobTitle DESC, lastName DESC, firstName DESC, middleName DESC";
030
031 public static final String[] ORDER_BY_FIELDS = {
032 "jobTitle", "lastName", "firstName", "middleName"
033 };
034
035 public UserJobTitleComparator() {
036 this(false);
037 }
038
039 public UserJobTitleComparator(boolean ascending) {
040 _ascending = ascending;
041 }
042
043 @Override
044 public int compare(Object obj1, Object obj2) {
045 User user1 = (User)obj1;
046 User user2 = (User)obj2;
047
048 String jobTitle1 = user1.getJobTitle();
049 String jobTitle2 = user2.getJobTitle();
050
051 int value = jobTitle1.compareTo(jobTitle2);
052
053 if (value == 0) {
054 String lastName1 = user1.getLastName();
055 String lastName2 = user2.getLastName();
056
057 value = lastName1.compareTo(lastName2);
058 }
059
060 if (value == 0) {
061 String firstName1 = user1.getFirstName();
062 String firstName2 = user2.getFirstName();
063
064 value = firstName1.compareTo(firstName2);
065 }
066
067 if (value == 0) {
068 String middleName1 = user1.getMiddleName();
069 String middleName2 = user2.getMiddleName();
070
071 value = middleName1.compareTo(middleName2);
072 }
073
074 if (_ascending) {
075 return value;
076 }
077 else {
078 return -value;
079 }
080 }
081
082 @Override
083 public String getOrderBy() {
084 if (_ascending) {
085 return ORDER_BY_ASC;
086 }
087 else {
088 return ORDER_BY_DESC;
089 }
090 }
091
092 @Override
093 public String[] getOrderByFields() {
094 return ORDER_BY_FIELDS;
095 }
096
097 @Override
098 public boolean isAscending() {
099 return _ascending;
100 }
101
102 private boolean _ascending;
103
104 }