}
public List sortList(List list,Comparator comparator,boolean preserveHierarchy){
Collections.sort(list,comparator);
if (preserveHierarchy)
for (Iterator i=list.iterator();i.hasNext();){
HierarchicObject child=(HierarchicObject)i.next();
if (child.getChildren().size()>0) sortList(child.getChildren(), comparator,true);
}
return list;
}