List of usage examples for org.apache.commons.collections.comparators NullComparator NullComparator
public NullComparator(boolean nullsAreHigh)
null
higher or lower than any non-null
object it is compared with. From source file:com.safetys.framework.jmesa.core.sort.ComparableAwareColumnSort.java
@SuppressWarnings("unchecked") public Collection<?> sortItems(Collection<?> items, Limit limit) { if (items.isEmpty()) { return items; }/*from w ww. jav a 2 s . c o m*/ ComparatorChain chain = new ComparatorChain(); SortSet sortSet = limit.getSortSet(); for (Sort sort : sortSet.getSorts()) { Class<?> type = null; try { type = getPropertyClassType(items, sort.getProperty()); } catch (Exception e) { logger.error("Had problems getting the column sort type.", e); } if (type != null && Comparable.class.isAssignableFrom(type)) { if (sort.getOrder() == Order.ASC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator(ComparableComparator.getInstance()))); } else if (sort.getOrder() == Order.DESC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator(ComparableComparator.getInstance())), true); } } else if (sort.getOrder() == Order.ASC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator())); } else if (sort.getOrder() == Order.DESC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()), true); } } if (chain.size() > 0) { Collections.sort((List<?>) items, chain); } return items; }
From source file:org.hippoecm.frontend.plugins.cms.admin.users.UserDataProvider.java
@Override public Iterator<User> iterator(long first, long count) { List<User> userList = new ArrayList<>(getList()); final Comparator<String> nullSafeComparator = new NullComparator(false); Collections.sort(userList, new Comparator<User>() { public int compare(User user1, User user2) { int direction = getSort().isAscending() ? 1 : -1; if ("frontend:firstname".equals(getSort().getProperty())) { return direction * (nullSafeComparator.compare(user1.getFirstName(), user2.getFirstName())); } else if ("frontend:lastname".equals(getSort().getProperty())) { return direction * (nullSafeComparator.compare(user1.getLastName(), user2.getLastName())); } else { return direction * (nullSafeComparator.compare(user1.getUsername(), user2.getUsername())); }//from w w w . j a v a 2 s .c o m } }); return userList.subList((int) first, (int) Math.min(first + count, userList.size())).iterator(); }
From source file:org.jmesa.core.sort.ComparableAwareColumnSort.java
@SuppressWarnings("unchecked") @Override// w w w . jav a2 s . c o m public Collection<?> sortItems(Collection<?> items, Limit limit) { if (items.isEmpty()) { return items; } ComparatorChain chain = new ComparatorChain(); SortSet sortSet = limit.getSortSet(); for (Sort sort : sortSet.getSorts()) { Class<?> type = null; try { type = getPropertyClassType(items, sort.getProperty()); } catch (Exception e) { logger.error("Had problems getting the column sort type.", e); } if (type != null && Comparable.class.isAssignableFrom(type)) { if (sort.getOrder() == Order.ASC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator(ComparableComparator.getInstance()))); } else if (sort.getOrder() == Order.DESC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator(ComparableComparator.getInstance())), true); } } else if (sort.getOrder() == Order.ASC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator())); } else if (sort.getOrder() == Order.DESC) { chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()), true); } } if (chain.size() > 0) { Collections.sort((List<?>) items, chain); } return items; }