List of usage examples for org.apache.commons.collections4.comparators ComparableComparator INSTANCE
ComparableComparator INSTANCE
To view the source code for org.apache.commons.collections4.comparators ComparableComparator INSTANCE.
Click Source Link
From source file:net.sf.jasperreports.crosstabs.fill.calculation.BucketDefinition.java
/** * Creates a bucket.// www . j av a 2s . c o m * * @param valueClass the class of the bucket values * @param orderer bucket entries orderer * @param comparator the comparator to use for bucket sorting * @param order the order type, {@link BucketOrder#ASCENDING}, {@link BucketOrder#DESCENDING} or {@link BucketOrder#NONE} * @param totalPosition the position of the total bucket * @throws JRException */ public BucketDefinition(Class<?> valueClass, BucketOrderer orderer, Comparator<Object> comparator, BucketOrder order, CrosstabTotalPositionEnum totalPosition) throws JRException { this.orderer = orderer; this.order = order; if (orderer == null) { // we don't have a bucket orderer if (order == BucketOrder.NONE) { // no ordering, values are inserted in the order in which they come this.bucketValueComparator = null; } else { // the buckets are ordered using the bucket values // if there's no comparator, we're assuming that the values are Comparable this.bucketValueComparator = createOrderComparator(comparator, order); } } else { // we have an order by expression // we only need an internal ordering for bucket values if (Comparable.class.isAssignableFrom(valueClass)) { // using natural order this.bucketValueComparator = ComparableComparator.INSTANCE; } else { // using an arbitrary rank comparator // TODO lucianc couldn't we just set here bucketValueComparator to null? if (log.isDebugEnabled()) { log.debug("Using arbitrary rank comparator for bucket"); } this.bucketValueComparator = new ArbitraryRankComparator(); } } this.totalPosition = totalPosition; computeTotal = totalPosition != CrosstabTotalPositionEnum.NONE || orderer != null; }
From source file:net.sf.jasperreports.crosstabs.fill.calculation.BucketDefinition.java
public static Comparator<Object> createOrderComparator(Comparator<Object> comparator, BucketOrder order) { Comparator<Object> orderComparator; switch (order) { case DESCENDING: { if (comparator == null) { orderComparator = new ReverseComparator<Object>(); } else {/*from ww w . j a v a 2 s . co m*/ orderComparator = new ReverseComparator<Object>(comparator); } break; } case ASCENDING: { if (comparator == null) { orderComparator = ComparableComparator.INSTANCE; } else { orderComparator = comparator; } break; } case NONE: default: throw new JRRuntimeException(EXCEPTION_MESSAGE_KEY_UNSUPPORTED_ORDER_TYPE, new Object[] { order }); } return orderComparator; }