Package org.zkoss.zul

Class FieldComparator

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator

    public class FieldComparator
    extends java.lang.Object
    implements java.util.Comparator, java.io.Serializable

    Based on the the given field names to compare the field value of the object that is passed in compare(java.lang.Object, java.lang.Object) method.

    The field names accept compound "a.b.c" expression. It also accept multiple field names that you can give expression in the form of e.g. "name, age, salary" and this comparator will compare in that sequence.

    Since:
    3.6.0
    Author:
    henrichen
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldComparator​(java.lang.String orderBy, boolean ascending)
      Compares with the fields per the given "ORDER BY" clause.
      FieldComparator​(java.lang.String orderBy, boolean ascending, boolean nullAsMax)
      Compares with the fields per the given "ORDER BY" clause.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.Object o1, java.lang.Object o2)  
      boolean equals​(java.lang.Object o)  
      java.lang.String getOrderBy()
      Returns the order-by clause.
      java.lang.String getRawOrderBy()
      Returns the original order-by clause passed to the constructor.
      int hashCode()  
      boolean isAscending()
      Returns whether the sorting is ascending.
      • 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
    • Constructor Detail

      • FieldComparator

        public FieldComparator​(java.lang.String orderBy,
                               boolean ascending)
        Compares with the fields per the given "ORDER BY" clause.

        Note: It assumes null as minimum value. If not, use FieldComparator(String, boolean, boolean) instead.

        Parameters:
        orderBy - the "ORDER BY" clause to be compared upon for the given object in compare(java.lang.Object, java.lang.Object).
        ascending - whether to sort as ascending (or descending).
      • FieldComparator

        public FieldComparator​(java.lang.String orderBy,
                               boolean ascending,
                               boolean nullAsMax)
        Compares with the fields per the given "ORDER BY" clause.
        Parameters:
        orderBy - the "ORDER BY" clause to be compared upon for the given object in compare(java.lang.Object, java.lang.Object).
        ascending - whether to sort as ascending (or descending).
        nullAsMax - whether to consider null as the maximum value. If false, null is considered as the minimum value.
    • Method Detail

      • compare

        public int compare​(java.lang.Object o1,
                           java.lang.Object o2)
        Specified by:
        compare in interface java.util.Comparator
      • getOrderBy

        public java.lang.String getOrderBy()
        Returns the order-by clause. Notice that is the parsed result, such as name=category ASC. For the original format, please use getRawOrderBy().
      • getRawOrderBy

        public java.lang.String getRawOrderBy()
        Returns the original order-by clause passed to the constructor. It is usually the field's name, such as category, or a concatenation of field names, such as category.name.

        Notice that, with the field's name, you could retrieve the value by use of Fields.getByCompound(java.lang.Object, java.lang.String).

        Since:
        5.0.6
      • isAscending

        public boolean isAscending()
        Returns whether the sorting is ascending.
        Since:
        5.0.6
      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in interface java.util.Comparator
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object