import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.collections.comparators.ComparableComparator;
import org.apache.commons.collections.comparators.ReverseComparator;
public class BeanComparator implements Comparator {
private String attribute;
private String sortBy;
private String javaType;
private Comparator comp = new ComparableComparator();
public BeanComparator(String attrib, String sortBy, String javaType) {
this.attribute = attrib;
this.sortBy = sortBy;
this.javaType = javaType;
if(this.sortBy!= null && !this.sortBy.equals("") && this.sortBy.equals("descending") )
comp = new ReverseComparator();
else if (this.sortBy!= null && !this.sortBy.equals("") && this.sortBy.equals("ascending") )
comp = new ComparableComparator();
}
public int compare(Object o1, Object o2) {
if(o1 == null) {
return 1;
} else
if(o2 == null) {
return -1;
}
try {
Object ret1 = PropertyUtils.getProperty(o1, this.attribute);
Object ret2 = PropertyUtils.getProperty(o2, this.attribute);
return this.comp.compare(ret1, ret2);
} catch(Exception e) {
return 0;
}
}
}
No comments:
Post a Comment