001
014
015 package com.liferay.portlet.shopping.util.comparator;
016
017 import com.liferay.portal.kernel.util.OrderByComparator;
018 import com.liferay.portlet.shopping.model.ShoppingItem;
019
020
023 public class ItemNameComparator extends OrderByComparator {
024
025 public static String ORDER_BY_ASC = "categoryId ASC, name ASC";
026
027 public static String ORDER_BY_DESC = "categoryId DESC, name DESC";
028
029 public static String[] ORDER_BY_FIELDS = {"categoryId", "name"};
030
031 public ItemNameComparator() {
032 this(false);
033 }
034
035 public ItemNameComparator(boolean ascending) {
036 _ascending = ascending;
037 }
038
039 @Override
040 public int compare(Object obj1, Object obj2) {
041 ShoppingItem item1 = (ShoppingItem)obj1;
042 ShoppingItem item2 = (ShoppingItem)obj2;
043
044 Long categoryId1 = new Long(item1.getCategoryId());
045 Long categoryId2 = new Long(item2.getCategoryId());
046
047 int value = categoryId1.compareTo(categoryId2);
048
049 if (value == 0) {
050 value = item1.getName().toLowerCase().compareTo(
051 item2.getName().toLowerCase());
052 }
053
054 if (_ascending) {
055 return value;
056 }
057 else {
058 return -value;
059 }
060 }
061
062 @Override
063 public String getOrderBy() {
064 if (_ascending) {
065 return ORDER_BY_ASC;
066 }
067 else {
068 return ORDER_BY_DESC;
069 }
070 }
071
072 @Override
073 public String[] getOrderByFields() {
074 return ORDER_BY_FIELDS;
075 }
076
077 @Override
078 public boolean isAscending() {
079 return _ascending;
080 }
081
082 private boolean _ascending;
083
084 }