/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package util.support;
import java.util.Comparator;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.comparators.ComparatorChain;
import org.apache.commons.collections.comparators.NullComparator;
import com.emc.storageos.model.DataObjectRestRep;
public class CreationTimeComparator implements Comparator<DataObjectRestRep> {
private static final String CREATION_TIME = "creationTime";
private ComparatorChain COMPARATOR;// NOSONAR ("Suppressing Sonar violation of Field name should comply with naming convention")
private boolean reverseOrder = false;
public CreationTimeComparator() {
}
public CreationTimeComparator(boolean reverseOrder) {
this.reverseOrder = reverseOrder;
}
@Override
public int compare(DataObjectRestRep o1, DataObjectRestRep o2) {
return getComparator().compare(o1, o2);
}
private ComparatorChain getComparator() {
if (COMPARATOR == null) {
COMPARATOR = new ComparatorChain();
COMPARATOR.addComparator(new BeanComparator(CREATION_TIME, new NullComparator()), reverseOrder);
}
return COMPARATOR;
}
public static final CreationTimeComparator NEWEST_FIRST = new CreationTimeComparator(true);
public static final CreationTimeComparator OLDEST_FIRST = new CreationTimeComparator();
}