Package org.zkoss.zul

Class FieldComparator

java.lang.Object
org.zkoss.zul.FieldComparator
All Implemented Interfaces:
Serializable, Comparator

public class FieldComparator extends Object implements Comparator, 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:
  • Constructor Details

    • FieldComparator

      public FieldComparator(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(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 Details

    • compare

      public int compare(Object o1, Object o2)
      Specified by:
      compare in interface Comparator
    • getOrderBy

      public 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 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(Object o)
      Specified by:
      equals in interface Comparator
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object