org.apache.commons.io.comparator
Class NameFileComparator

java.lang.Object
  extended by org.apache.commons.io.comparator.NameFileComparator
All Implemented Interfaces:
Serializable, Comparator<File>

public class NameFileComparator
extends Object
implements 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 = ...
       NameFileComparator.NAME_COMPARATOR.sort(list);
 

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

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

Since:
1.4
Version:
$Id: NameFileComparator.java 1304052 2012-03-22 20:55:29Z ggregory $
See Also:
Serialized Form

Field Summary
static Comparator<File> NAME_COMPARATOR
          Case-sensitive name comparator instance (see IOCase.SENSITIVE)
static Comparator<File> NAME_INSENSITIVE_COMPARATOR
          Case-insensitive name comparator instance (see IOCase.INSENSITIVE)
static Comparator<File> NAME_INSENSITIVE_REVERSE
          Reverse case-insensitive name comparator instance (see IOCase.INSENSITIVE)
static Comparator<File> NAME_REVERSE
          Reverse case-sensitive name comparator instance (see IOCase.SENSITIVE)
static Comparator<File> NAME_SYSTEM_COMPARATOR
          System sensitive name comparator instance (see IOCase.SYSTEM)
static Comparator<File> NAME_SYSTEM_REVERSE
          Reverse system sensitive name comparator instance (see IOCase.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
 int compare(File file1, File file2)
          Compare the names of two files with the specified case sensitivity.
 File[] sort(File... files)
          Sort an array of files.
 List<File> sort(List<File> files)
          Sort a List of files.
 String toString()
          String representation of this file comparator.
 
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
 

Field Detail

NAME_COMPARATOR

public static final Comparator<File> NAME_COMPARATOR
Case-sensitive name comparator instance (see IOCase.SENSITIVE)


NAME_REVERSE

public static final Comparator<File> NAME_REVERSE
Reverse case-sensitive name comparator instance (see IOCase.SENSITIVE)


NAME_INSENSITIVE_COMPARATOR

public static final Comparator<File> NAME_INSENSITIVE_COMPARATOR
Case-insensitive name comparator instance (see IOCase.INSENSITIVE)


NAME_INSENSITIVE_REVERSE

public static final Comparator<File> NAME_INSENSITIVE_REVERSE
Reverse case-insensitive name comparator instance (see IOCase.INSENSITIVE)


NAME_SYSTEM_COMPARATOR

public static final Comparator<File> NAME_SYSTEM_COMPARATOR
System sensitive name comparator instance (see IOCase.SYSTEM)


NAME_SYSTEM_REVERSE

public static final Comparator<File> NAME_SYSTEM_REVERSE
Reverse system sensitive name comparator instance (see IOCase.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(File file1,
                   File file2)
Compare the names of two files with the specified case sensitivity.

Specified by:
compare in interface Comparator<File>
Parameters:
file1 - The first file to compare
file2 - 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.

toString

public String toString()
String representation of this file comparator.

Returns:
String representation of this file comparator

sort

public File[] sort(File... files)
Sort an array of files.

This method uses Arrays.sort(Object[], Comparator) and returns the original array.

Parameters:
files - The files to sort, may be null
Returns:
The sorted array
Since:
2.0

sort

public List<File> sort(List<File> files)
Sort a List of files.

This method uses Collections.sort(List, Comparator) and returns the original list.

Parameters:
files - The files to sort, may be null
Returns:
The sorted list
Since:
2.0


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.