Class TransformingComparator<I,​O>

  • Type Parameters:
    I - the input type to the transformer
    O - the output type from the transformer
    All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator<I>

    public class TransformingComparator<I,​O>
    extends java.lang.Object
    implements java.util.Comparator<I>, java.io.Serializable
    Decorates another Comparator with transformation behavior. That is, the return value from the transform operation will be passed to the decorated compare method.

    This class is Serializable from Commons Collections 4.0.

    Since:
    2.1
    See Also:
    Transformer, ComparableComparator, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Comparator<O> decorated
      The decorated comparator.
      private static long serialVersionUID
      Serialization version from Collections 4.0.
      private Transformer<? super I,​? extends O> transformer
      The transformer being used.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(I obj1, I obj2)
      Returns the result of comparing the values from the transform operation.
      boolean equals​(java.lang.Object object)
      Returns true iff that Object is is a Comparator whose ordering is known to be equivalent to mine.
      int hashCode()
      Implement a hash code for this comparator that is consistent with equals.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Serialization version from Collections 4.0.
        See Also:
        Constant Field Values
      • decorated

        private final java.util.Comparator<O> decorated
        The decorated comparator.
      • transformer

        private final Transformer<? super I,​? extends O> transformer
        The transformer being used.
    • Constructor Detail

      • TransformingComparator

        public TransformingComparator​(Transformer<? super I,​? extends O> transformer)
        Constructs an instance with the given Transformer and a ComparableComparator.
        Parameters:
        transformer - what will transform the arguments to compare
      • TransformingComparator

        public TransformingComparator​(Transformer<? super I,​? extends O> transformer,
                                      java.util.Comparator<O> decorated)
        Constructs an instance with the given Transformer and Comparator.
        Parameters:
        transformer - what will transform the arguments to compare
        decorated - the decorated Comparator
    • Method Detail

      • compare

        public int compare​(I obj1,
                           I obj2)
        Returns the result of comparing the values from the transform operation.
        Specified by:
        compare in interface java.util.Comparator<I>
        Parameters:
        obj1 - the first object to transform then compare
        obj2 - the second object to transform then compare
        Returns:
        negative if obj1 is less, positive if greater, zero if equal
      • hashCode

        public int hashCode()
        Implement a hash code for this comparator that is consistent with equals.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hash code for this comparator.
      • equals

        public boolean equals​(java.lang.Object object)
        Returns true iff that Object is is a Comparator whose ordering is known to be equivalent to mine.

        This implementation returns true iff that is a TransformingComparator whose attributes are equal to mine.

        Specified by:
        equals in interface java.util.Comparator<I>
        Overrides:
        equals in class java.lang.Object
        Parameters:
        object - the object to compare to
        Returns:
        true if equal