Sorting the collection based on bean property in "CollectionUtils"
------------------------------------------------------------------
Key: COLLECTIONS-329
URL: https://issues.apache.org/jira/browse/COLLECTIONS-329
Project: Commons Collections
Issue Type: New Feature
Components: Collection, Comparator
Affects Versions: 3.2
Environment: JDK 1.5 and above , Apache Collections
Reporter: Ganesh Gowtham
Priority: Minor
Hi Folks ,
Thanks for your good work done in Collection Framework .
It would be good if you add functionality to sort the collection based on
bean's property name . ( CollectionsUtils,java)
For example i have List<Person> , i should be able to sort (ascending or
desending ) based on person's salary (or) firstName (or) lastName (or) may be
the combination of above
below is the equivalent in SQL
(select * from person order by salary,firtsName,lastName asc )
method looks like
public static <T> void sort(List<T> list, boolean isAscending,String...
beanPropertyName) {
Collection<Comparator<T>> beanComparatorCollection = new
ArrayList<Comparator<T>>(beanPropertyName.length);
for(int i =0;i<beanPropertyName.length;i++)
{
beanComparatorCollection.add(new
BeanComparator(beanPropertyName[i]));
}
Comparator<T> finalComparator =
ComparatorUtils.chainedComparator(beanComparatorCollection);
if (!isAscending) {
finalComparator = new
ReverseComparator(finalComparator);
}
Collections.sort(list, finalComparator);
}
Please let me know if you need any details , infact i able to submit patch too .
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.