package util;

import java.util.Comparator;

/**
  * A comparator that reverses the order implied by another comparator.
  *
  * @author Steffen Zschaler
  * @version 3.0 12/14/2000
  * @since v3.0
  */
public final class ReverseOrderComparator extends Object implements Comparator {

  /**
    * The original comparator.
    */
  private Comparator m_cmpOrg;
  
  /** 
    * Creates new ReverseOrderComparator.
    */
  public ReverseOrderComparator (Comparator cmpOrg) {
    super();
    
    m_cmpOrg = cmpOrg;
  }
  
  public boolean equals (Object o2) {
    return (o2 instanceof ReverseOrderComparator) &&
            (((ReverseOrderComparator) o2).m_cmpOrg == m_cmpOrg);
  }
  
  public int compare (final Object o1,
                        final Object o2) {
    return (-1) * m_cmpOrg.compare (o1, o2);
  }
}