else
throw new FacesException("Data type should be java.util.List or javax.faces.model.ListDataModel instance to be sortable.");
ChainedBeanPropertyComparator chainedComparator = new ChainedBeanPropertyComparator();
for(SortMeta meta : sortMeta) {
BeanPropertyComparator comparator;
UIColumn sortColumn = meta.getColumn();
ValueExpression sortByVE = sortColumn.getValueExpression("sortBy");
if(sortColumn.isDynamic()) {
((DynamicColumn) sortColumn).applyStatelessModel();
comparator = new DynamicChainedPropertyComparator((DynamicColumn) sortColumn, sortByVE, table.getVar(), meta.getSortOrder(), sortColumn.getSortFunction(), caseSensitiveSort, locale, nullSortOrder);
}
else {
comparator = new BeanPropertyComparator(sortByVE, table.getVar(), meta.getSortOrder(), sortColumn.getSortFunction(), caseSensitiveSort, locale, nullSortOrder);
}
chainedComparator.addComparator(comparator);
}