* list of property names with optional ASC or DESC suffix.
*/
@SuppressWarnings("unchecked")
private ElComparator<T> createComparator(String sortByClause) {
SortByClause sortBy = SortByClauseParser.parse(sortByClause);
if (sortBy.size() == 1) {
// simple comparator for a single property
return createPropertyComparator(sortBy.getProperties().get(0));
}
// create a compound comparator based on the list of properties
ElComparator<T>[] comparators = new ElComparator[sortBy.size()];
List<Property> sortProps = sortBy.getProperties();
for (int i = 0; i < sortProps.size(); i++) {
Property sortProperty = sortProps.get(i);
comparators[i] = createPropertyComparator(sortProperty);
}