package ro.isdc.wro.util; import java.util.Comparator; /** * Classes implementing this interface signal to the classes that load them that order is significant. * * @author Moandji Ezana * @created 9 Jan 2013 * @since 1.6.2 */ public interface Ordered { /** * The highest order, meaning that the value will be the last when ascending comparator is used. */ public static final int HIGHEST = Integer.MAX_VALUE; public static final int MEDIUM = 0; /** * The highest order, meaning that the value will be the first when ascending comparator is used. */ public static final int LOWEST = Integer.MIN_VALUE; public static final Comparator<Object> ASCENDING_COMPARATOR = new Comparator<Object>() { /** * {@inheritDoc} */ public int compare(final Object left, final Object right) { int priorityLeft = MEDIUM; int priorityRight = MEDIUM; if (left instanceof Ordered) { final Ordered orderedLeft = (Ordered) left; priorityLeft = orderedLeft.getOrder(); } if (right instanceof Ordered) { final Ordered orderedRight = (Ordered) right; priorityRight = orderedRight.getOrder(); } if (priorityLeft == priorityRight) { return 0; } return priorityLeft > priorityRight ? 1: -1; } }; /** * @return a number representing the order. */ int getOrder(); }