package org.displaytag.test;
import java.util.Comparator;
import org.apache.commons.beanutils.ConvertUtils;
/**
* Sorts 2 numbers, converted from objects using beanutils Converters.
* @author rapruitt
* @author Fabrizio Giustina
* @version $Revision$ ($Author$)
*/
public class NumberComparator implements Comparator
{
/**
* @see Comparator#compare(Object, Object)
*/
public int compare(Object obj1, Object obj2)
{
double dbl1 = 0;
if (obj1 instanceof Number)
{
dbl1 = ((Number) obj1).doubleValue();
}
else if (obj1 != null)
{
dbl1 = ((Number) ConvertUtils.convert(obj1.toString(), Number.class)).doubleValue();
}
double dbl2 = 0;
if (obj2 instanceof Number)
{
dbl2 = ((Number) obj2).doubleValue();
}
else if (obj1 != null)
{
dbl2 = ((Number) ConvertUtils.convert(obj2.toString(), Number.class)).doubleValue();
}
return new Double(dbl1).compareTo(new Double(dbl2));
}
}