Example usage for org.apache.commons.collections.comparators NullComparator NullComparator

List of usage examples for org.apache.commons.collections.comparators NullComparator NullComparator

Introduction

In this page you can find the example usage for org.apache.commons.collections.comparators NullComparator NullComparator.

Prototype

public NullComparator(boolean nullsAreHigh) 

Source Link

Document

Construct an instance that sorts null higher or lower than any non-null object it is compared with.

Usage

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;
}