org.apache.commons.io.comparator

Class NameFileComparator

public class NameFileComparator extends Object implements Comparator, Serializable

Compare the names of two files for order (see File#getName()).

This comparator can be used to sort lists or arrays of files by their name either in a case-sensitive, case-insensitive or system dependant case sensitive way. A number of singleton instances are provided for the various case sensitivity options (using IOCase) and the reverse of those options.

Example of a case-sensitive file name sort using the NAME_COMPARATOR singleton instance:

       List<File> list = ...
       Collections.sort(list, NameFileComparator.NAME_COMPARATOR);
 

Example of a reverse case-insensitive file name sort using the NAME_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       Arrays.sort(array, NameFileComparator.NAME_INSENSITIVE_REVERSE);
 

Since: Commons IO 1.4

Version: $Revision: 609243 $ $Date: 2008-01-06 00:30:42 +0000 (Sun, 06 Jan 2008) $

Field Summary
IOCasecaseSensitivity
Whether the comparison is case sensitive.
static ComparatorNAME_COMPARATOR
Case-sensitive name comparator instance (see SENSITIVE)
static ComparatorNAME_INSENSITIVE_COMPARATOR
Case-insensitive name comparator instance (see INSENSITIVE)
static ComparatorNAME_INSENSITIVE_REVERSE
Reverse case-insensitive name comparator instance (see INSENSITIVE)
static ComparatorNAME_REVERSE
Reverse case-sensitive name comparator instance (see SENSITIVE)
static ComparatorNAME_SYSTEM_COMPARATOR
System sensitive name comparator instance (see SYSTEM)
static ComparatorNAME_SYSTEM_REVERSE
Reverse system sensitive name comparator instance (see SYSTEM)
Constructor Summary
NameFileComparator()
Construct a case sensitive file name comparator instance.
NameFileComparator(IOCase caseSensitivity)
Construct a file name comparator instance with the specified case-sensitivity.
Method Summary
intcompare(Object obj1, Object obj2)
Compare the names of two files with the specified case sensitivity.

Field Detail

caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

NAME_COMPARATOR

public static final Comparator NAME_COMPARATOR
Case-sensitive name comparator instance (see SENSITIVE)

NAME_INSENSITIVE_COMPARATOR

public static final Comparator NAME_INSENSITIVE_COMPARATOR
Case-insensitive name comparator instance (see INSENSITIVE)

NAME_INSENSITIVE_REVERSE

public static final Comparator NAME_INSENSITIVE_REVERSE
Reverse case-insensitive name comparator instance (see INSENSITIVE)

NAME_REVERSE

public static final Comparator NAME_REVERSE
Reverse case-sensitive name comparator instance (see SENSITIVE)

NAME_SYSTEM_COMPARATOR

public static final Comparator NAME_SYSTEM_COMPARATOR
System sensitive name comparator instance (see SYSTEM)

NAME_SYSTEM_REVERSE

public static final Comparator NAME_SYSTEM_REVERSE
Reverse system sensitive name comparator instance (see SYSTEM)

Constructor Detail

NameFileComparator

public NameFileComparator()
Construct a case sensitive file name comparator instance.

NameFileComparator

public NameFileComparator(IOCase caseSensitivity)
Construct a file name comparator instance with the specified case-sensitivity.

Parameters: caseSensitivity how to handle case sensitivity, null means case-sensitive

Method Detail

compare

public int compare(Object obj1, Object obj2)
Compare the names of two files with the specified case sensitivity.

Parameters: obj1 The first file to compare obj2 The second file to compare

Returns: a negative value if the first file's name is less than the second, zero if the names are the same and a positive value if the first files name is greater than the second file.

Copyright (c) 2002-2011 Apache Software Foundation