001    package util;
002    
003    import java.util.Comparator;
004    
005    /**
006     * A comparator that reverses the order implied by another comparator.
007     *
008     * @author Steffen Zschaler
009     * @version 3.0 12/14/2000
010     * @since v3.0
011     */
012    public final class ReverseOrderComparator extends Object implements Comparator<Object> {
013    
014        /**
015         * The original comparator.
016         */
017        private Comparator<Object> m_cmpOrg;
018    
019        /**
020         * Creates new ReverseOrderComparator.
021         */
022        public ReverseOrderComparator(Comparator<Object> cmpOrg) {
023            super();
024    
025            m_cmpOrg = cmpOrg;
026        }
027    
028        public boolean equals(Object o2) {
029            return (o2 instanceof ReverseOrderComparator) && (((ReverseOrderComparator)o2).m_cmpOrg == m_cmpOrg);
030        }
031    
032        public int compare(final Object o1, final Object o2) {
033            return ( -1) * m_cmpOrg.compare(o1, o2);
034        }
035    }