// TransferTotalComparator
package org.javamoney.examples.ez.money.gui.table.comparator;
import static org.javamoney.examples.ez.common.utility.CompareHelper.compareAmounts;
import static org.javamoney.examples.ez.common.utility.CompareHelper.compareObjects;
import static org.javamoney.examples.ez.money.gui.table.TransferTotalTable.FROM_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.TransferTotalTable.ID_COLUMN;
import org.javamoney.examples.ez.money.model.dynamic.total.TransferTotal;
import org.javamoney.examples.ez.common.gui.table.DataTableComparator;
/**
* This class facilitates comparing transfer totals in a table.
*/
public
final
class
TransferTotalComparator
extends DataTableComparator<TransferTotal>
{
/**
* Constructs a new comparator.
*/
public
TransferTotalComparator()
{
super(ID_COLUMN);
}
/**
* This method compares two totals.
*
* @param total1 A total to compare.
* @param total2 A total to compare.
*
* @return The result of comparing two totals.
*/
@Override
public
int
compare(TransferTotal total1, TransferTotal total2)
{
int result = 0;
if(getColumn() == ID_COLUMN)
{
result = compareObjects(total1, total2, invertSort());
}
else if(getColumn() == FROM_COLUMN)
{
result = compareAmounts(total2.getFromTotal(), total1.getFromTotal(),
invertSort());
}
else
{
result = compareAmounts(total2.getToTotal(), total1.getToTotal(),
invertSort());
}
return result;
}
}