blob: 28e443bf4e043e588184ed2c51f41e9ef3c91add [file] [log] [blame]
package com.google.lizlooney.shoppinglist;
import java.util.Comparator;
/**
* Class containing Item Comparators.
*
* @author lizlooney@gmail.com (Liz Looney)
*/
public final class ItemComparators {
public static final Comparator<Item> SORT_FOR_PLANNING = new Comparator<>() {
@Override
public int compare(Item o1, Item o2) {
int result = o1.getCategory().compareToIgnoreCase(o2.getCategory());
if (result != 0) {
return result;
}
result = o1.getDescription().compareToIgnoreCase(o2.getDescription());
if (result != 0) {
return result;
}
return o1.getId() - o2.getId();
}
};
public static Comparator<Item> sortForShopping(final String storeFilter) {
return new Comparator<>() {
@Override
public int compare(Item o1, Item o2) {
ItemState state1 = o1.getState();
ItemState state2 = o2.getState();
// Needed items come first.
if (state1 != state2) {
if (state1 == ItemState.NEED) {
return -1;
}
if (state2 == ItemState.NEED) {
return 1;
}
}
if (storeFilter != null) {
int result = o1.getAisle(storeFilter).compareToIgnoreCase(o2.getAisle(storeFilter));
if (result != 0) {
return result;
}
}
int result = o1.getDescription().compareToIgnoreCase(o2.getDescription());
if (result != 0) {
return result;
}
return o1.getId() - o2.getId();
}
};
}
}