Package org.springframework.beans.support

# Class PropertyComparator<T>

java.lang.Object
org.springframework.beans.support.PropertyComparator<T>

Type Parameters:
  `T` - the type of objects that may be compared by this comparator

All Implemented Interfaces:
  `Comparator<T>`

public class PropertyComparator<T> extends Object implements Comparator<T>
PropertyComparator performs a comparison of two beans, evaluating the specified bean property via a BeanWrapper.

Since:
  19.05.2003
Author:
  Juergen Hoeller, Jean-Pierre Pawlak
See Also:
  - `BeanWrapper`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`

## Constructor Summary

Constructors
Constructor
Description
`PropertyComparator(String property, boolean ignoreCase, boolean ascending)`
Create a PropertyComparator for the given settings.
`PropertyComparator(SortDefinition sortDefinition)`
Create a new PropertyComparator for the given SortDefinition.

## Method Summary

Modifier and Type
Method
Description
`int`
`compare(T o1, T o2)`
`final SortDefinition`
`getSortDefinition()`
Return the SortDefinition that this comparator uses.
`static void`
`sort(Object[] source, SortDefinition sortDefinition)`
Sort the given source according to the given sort definition.
`static void`
`sort(List<?> source, SortDefinition sortDefinition)`
Sort the given List according to the given sort definition.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.Comparator

`equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

## Field Details

### logger

protected final org.apache.commons.logging.Log logger

## Constructor Details

### PropertyComparator

public PropertyComparator(SortDefinition sortDefinition)
Create a new PropertyComparator for the given SortDefinition.

See Also:
  - `MutableSortDefinition`

### PropertyComparator

public PropertyComparator(String property, boolean ignoreCase, boolean ascending)
Create a PropertyComparator for the given settings.

Parameters:
  `property` - the property to compare
  `ignoreCase` - whether upper and lower case in String values should be ignored
  `ascending` - whether to sort ascending (true) or descending (false)

## Method Details

### getSortDefinition

public final SortDefinition getSortDefinition()
Return the SortDefinition that this comparator uses.

### compare

public int compare(T o1, T o2)

Specified by:
  `compare` in interface `Comparator<T>`

### sort

public static void sort(List<?> source, SortDefinition sortDefinition) throws BeansException
Sort the given List according to the given sort definition.

Note: Contained objects have to provide the given property in the form of a bean property, i.e. a getXXX method.

Parameters:
  `source` - the input List
  `sortDefinition` - the parameters to sort by
Throws:
  `IllegalArgumentException` - in case of a missing propertyName
  `BeansException`

### sort

public static void sort(Object[] source, SortDefinition sortDefinition) throws BeansException
Sort the given source according to the given sort definition.

Note: Contained objects have to provide the given property in the form of a bean property, i.e. a getXXX method.

Parameters:
  `source` - input source
  `sortDefinition` - the parameters to sort by
Throws:
  `IllegalArgumentException` - in case of a missing propertyName
  `BeansException`