package org.marketcetera.event.util; import java.util.Comparator; import javax.annotation.concurrent.Immutable; import org.marketcetera.event.QuoteEvent; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Compares two <code>QuoteEvent</code> values based on their price and size * only. * * <p>Price is compared first, followed by size, if necessary. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: PriceAndSizeComparator.java 16154 2012-07-14 16:34:05Z colin $ * @since 1.5.0 */ @Immutable @ClassVersion("$Id: PriceAndSizeComparator.java 16154 2012-07-14 16:34:05Z colin $") public class PriceAndSizeComparator implements Comparator<QuoteEvent> { /** * the instance to use for comparisons */ public static final PriceAndSizeComparator instance = new PriceAndSizeComparator(); /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @Override public int compare(QuoteEvent inO1, QuoteEvent inO2) { if(inO1 == inO2) { return 0; } int result; if((result = inO1.getPrice().compareTo(inO2.getPrice())) != 0) { return result; } return inO1.getSize().compareTo(inO2.getSize()); } /** * Create a new PriceAndSizeComparator instance. */ private PriceAndSizeComparator() {} }