Class PropertyComparator

java.lang.Object
com.avoka.core.util.PropertyComparator
All Implemented Interfaces:
Comparator
Direct Known Subclasses:
IDPropertyComparator, PropertyComparatorDesc, VersionPropertyComparator

public class PropertyComparator extends Object implements Comparator
Provides a object property string comparator. Comparison is done by retrieving the property values for both objects, then comparing them (ignoring case) using a StringComparator or a custom Comparator.
See Also:
  • Field Details

    • property

      protected String property
    • comparator

      protected Comparator comparator
  • Constructor Details

    • PropertyComparator

      public PropertyComparator(String property)
      Create a new property comparator, comparing the specified object property.
      Parameters:
      property - the name of the property to compare
    • PropertyComparator

      public PropertyComparator(String property, Comparator comparator)
      Create a new string comparator, comparing the specified object property.
      Parameters:
      property - the name of the property to compare
      comparator - the comparator to use when comparing the property values
    • PropertyComparator

      public PropertyComparator()
      Create a new string comparator, comparing the specified object.
  • Method Details

    • compare

      public int compare(Object object1, Object object2)
      Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

      The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

      The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

      Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.

      It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."

      Specified by:
      compare in interface Comparator
      Parameters:
      object1 - the first object to be compared.
      object2 - the second object to be compared.
      Returns:
      a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
      Throws:
      ClassCastException - if the arguments' types prevent them from being compared by this Comparator.
      See Also: