org.ujorm.core
Class UjoComparator<UJO extends Ujo>

java.lang.Object
  extended by org.ujorm.core.UjoComparator<UJO>
All Implemented Interfaces:
java.util.Comparator<UJO>

public final class UjoComparator<UJO extends Ujo>
extends java.lang.Object
implements java.util.Comparator<UJO>

A generic comparator for the Ujo objects. A direction is the sorting is controlled by attribute UjoProperty.isAscending() .

Author:
Pavel Ponec
See Also:
UjoProperty.isAscending(), UjoProperty.descending()

Constructor Summary
UjoComparator(java.util.Locale locale, int collatorStrength, UjoProperty... properties)
          Creates a new instance of UjoComparator
UjoComparator(UjoProperty... properties)
          Creates a new instance of UjoComparator.
 
Method Summary
 int compare(UJO u1, UJO u2)
          Compare two Ujo objects.
 boolean equals(UJO u1, UJO u2)
          An equals test
 java.text.Collator getCollator()
          Collator for String comparations.
static
<UJO extends Ujo>
UjoComparator<UJO>
newInstance(java.util.Locale locale, int collatorStrength, UjoProperty<UJO,?>... properties)
          Creates a new instance of UjoComparator
static
<UJO extends Ujo>
UjoComparator<UJO>
newInstance(UjoProperty<UJO,?>... properties)
          Creates a new instance of UjoComparator.
static
<UJO extends Ujo>
UjoComparator<UJO>
newInstance(UjoProperty<UJO,?> p1)
           
static
<UJO extends Ujo>
UjoComparator<UJO>
newInstance(UjoProperty<UJO,?> p1, UjoProperty<UJO,?> p2)
           
static
<UJO extends Ujo>
UjoComparator<UJO>
newInstance(UjoProperty<UJO,?> p1, UjoProperty<UJO,?> p2, UjoProperty<UJO,?> p3)
           
 void setCollator(java.text.Collator collator)
          Collator for String comparations
 java.util.List<UJO> sort(java.util.List<UJO> list)
          Sort a list by this Comparator.
 UJO[] sort(UJO[] array)
          Sort a list by this Comparator.
 java.lang.String toString()
          A String reprezentation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

UjoComparator

public UjoComparator(UjoProperty... properties)
Creates a new instance of UjoComparator. The String are compared as Collator.IDENTICAL by English locale by default.

Parameters:
properties - sorting criteria are ordered by importance to down. A direction of the sorting is used by a method UjoProperty#isAscending().
See Also:
UjoProperty.isAscending(), UjoProperty.descending()

UjoComparator

public UjoComparator(java.util.Locale locale,
                     int collatorStrength,
                     UjoProperty... properties)
Creates a new instance of UjoComparator

Parameters:
locale - Locale for a String coparation
collatorStrength - Cllator Strength for String comparations
properties - sorting criteria are ordered by importance to down. A direction of the sorting is used by a method UjoProperty#isAscending().
See Also:
UjoProperty.isAscending(), UjoProperty.descending()
Method Detail

getCollator

public java.text.Collator getCollator()
Collator for String comparations. Default collator have en English locale with the IDENTICAL strength (case sensitive);


setCollator

public void setCollator(java.text.Collator collator)
Collator for String comparations


compare

public int compare(UJO u1,
                   UJO u2)
Compare two Ujo objects.

Specified by:
compare in interface java.util.Comparator<UJO extends Ujo>
Parameters:
u1 - Ujo Object 1
u2 - Ujo Object 2
Returns:
Result of comparation

sort

public java.util.List<UJO> sort(java.util.List<UJO> list)
Sort a list by this Comparator.


sort

public UJO[] sort(UJO[] array)
Sort a list by this Comparator.


toString

public java.lang.String toString()
A String reprezentation.

Overrides:
toString in class java.lang.Object

equals

public final boolean equals(UJO u1,
                            UJO u2)
An equals test


newInstance

public static <UJO extends Ujo> UjoComparator<UJO> newInstance(UjoProperty<UJO,?>... properties)
Creates a new instance of UjoComparator. The String are compared as Collator.IDENTICAL by English locale by default. Sample:
 List<Person> result = UjoComparator.<Person>newInstance(Person.NAME).sort(persons);
 

Parameters:
properties - sorting criteria are ordered by importance to down. A direction of the sorting is used by a method UjoProperty#isAscending().
See Also:
UjoProperty.isAscending(), UjoProperty.descending()

newInstance

public static <UJO extends Ujo> UjoComparator<UJO> newInstance(UjoProperty<UJO,?> p1)
See Also:
#newInstance(org.ujorm.UjoProperty[])

newInstance

public static <UJO extends Ujo> UjoComparator<UJO> newInstance(UjoProperty<UJO,?> p1,
                                                               UjoProperty<UJO,?> p2)
See Also:
#newInstance(org.ujorm.UjoProperty[])

newInstance

public static <UJO extends Ujo> UjoComparator<UJO> newInstance(UjoProperty<UJO,?> p1,
                                                               UjoProperty<UJO,?> p2,
                                                               UjoProperty<UJO,?> p3)
See Also:
#newInstance(org.ujorm.UjoProperty[])

newInstance

public static <UJO extends Ujo> UjoComparator<UJO> newInstance(java.util.Locale locale,
                                                               int collatorStrength,
                                                               UjoProperty<UJO,?>... properties)
Creates a new instance of UjoComparator

Parameters:
locale - Locale for a String coparation
collatorStrength - Cllator Strength for String comparations
properties - sorting criteria are ordered by importance to down. A direction of the sorting is used by a method UjoProperty#isAscending().
See Also:
UjoProperty.isAscending(), UjoProperty.descending()


Copyright © 2007-2012 PPonec