Package org.apache.wiki.pages

## Class PageSorter

- java.lang.Object
- - org.apache.wiki.pages.PageSorter

All Implemented Interfaces:
  `java.util.Comparator<java.lang.String>`

    public class PageSorter
    extends java.lang.Object
    implements java.util.Comparator<java.lang.String>

Wrapper class for managing and using the PageNameComparator.

Note - this class is deliberately not null safe. Never call any of the methods with a null argument!

### Field Summary

Fields
`protected static java.lang.String` `PROP_PAGE_NAME_COMPARATOR`

### Constructor Summary

Constructors
`PageSorter()` Default constructor uses Java "natural" ordering.
`PageSorter​(java.util.Comparator<java.lang.String> comparator)` Construct with a particular comparator.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `compare​(java.lang.String pageName1, java.lang.String pageName2)` Compare two page names (String version).
`boolean` `equals​(java.lang.Object o)`
`void` `initialize​(java.util.Properties props)` Called by Engine to initialise this instance.
`void` `sort​(java.lang.String[] nameArray)` Sorts the specified array into ascending order based on the PageNameComparator.
`void` `sort​(java.util.List<java.lang.String> nameList)` Sorts the specified list into ascending order based on the PageNameComparator.

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

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

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

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

### Field Detail

#### PROP_PAGE_NAME_COMPARATOR

    protected static final java.lang.String PROP_PAGE_NAME_COMPARATOR

See Also:
  Constant Field Values

### Constructor Detail

#### PageSorter

    public PageSorter()

Default constructor uses Java "natural" ordering.

#### PageSorter

    public PageSorter​(java.util.Comparator<java.lang.String> comparator)

Construct with a particular comparator.

Parameters:
  `comparator` - the Comparator to use

### Method Detail

#### compare

    public int compare​(java.lang.String pageName1,
                       java.lang.String pageName2)

Compare two page names (String version).

Specified by:
  `compare` in interface `java.util.Comparator<java.lang.String>`
Parameters:
  `pageName1` - the first page name
  `pageName2` - the second page name
Returns:
  see java.util.Comparator
See Also:
  `Comparator.compare(java.lang.Object, java.lang.Object)`

#### equals

    public boolean equals​(java.lang.Object o)

Specified by:
  `equals` in interface `java.util.Comparator<java.lang.String>`
Overrides:
  `equals` in class `java.lang.Object`

#### initialize

    public void initialize​(java.util.Properties props)

Called by Engine to initialise this instance. Tries to use class given by the PROP_PAGE_NAME_COMPARATOR property as the page name comparator. Uses a default comparator if this property is not set or there is any problem loading the specified class.

Parameters:
  `props` - this Engine's properties.

#### sort

    public void sort​(java.util.List<java.lang.String> nameList)

Sorts the specified list into ascending order based on the PageNameComparator. The actual sort is done using `List.sort()`.

Parameters:
  `nameList` - the page names to be sorted

#### sort

    public void sort​(java.lang.String[] nameArray)

Sorts the specified array into ascending order based on the PageNameComparator. The actual sort is done using `Arrays.sort()`.

Parameters:
  `nameArray` - the page names to be sorted