org.apache.commons.io.comparator

Class PathFileComparator

public class PathFileComparator extends Object implements Comparator, Serializable

Compare the path of two files for order (see File#getPath()).

This comparator can be used to sort lists or arrays of files by their path 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 path sort using the PATH_COMPARATOR singleton instance:

       List<File> list = ...
       Collections.sort(list, PathFileComparator.PATH_COMPARATOR);
 

Example of a reverse case-insensitive file path sort using the PATH_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       Arrays.sort(array, PathFileComparator.PATH_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 ComparatorPATH_COMPARATOR
Case-sensitive path comparator instance (see SENSITIVE)
static ComparatorPATH_INSENSITIVE_COMPARATOR
Case-insensitive path comparator instance (see INSENSITIVE)
static ComparatorPATH_INSENSITIVE_REVERSE
Reverse case-insensitive path comparator instance (see INSENSITIVE)
static ComparatorPATH_REVERSE
Reverse case-sensitive path comparator instance (see SENSITIVE)
static ComparatorPATH_SYSTEM_COMPARATOR
System sensitive path comparator instance (see SYSTEM)
static ComparatorPATH_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (see SYSTEM)
Constructor Summary
PathFileComparator()
Construct a case sensitive file path comparator instance.
PathFileComparator(IOCase caseSensitivity)
Construct a file path comparator instance with the specified case-sensitivity.
Method Summary
intcompare(Object obj1, Object obj2)
Compare the paths of two files the specified case sensitivity.

Field Detail

caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

PATH_COMPARATOR

public static final Comparator PATH_COMPARATOR
Case-sensitive path comparator instance (see SENSITIVE)

PATH_INSENSITIVE_COMPARATOR

public static final Comparator PATH_INSENSITIVE_COMPARATOR
Case-insensitive path comparator instance (see INSENSITIVE)

PATH_INSENSITIVE_REVERSE

public static final Comparator PATH_INSENSITIVE_REVERSE
Reverse case-insensitive path comparator instance (see INSENSITIVE)

PATH_REVERSE

public static final Comparator PATH_REVERSE
Reverse case-sensitive path comparator instance (see SENSITIVE)

PATH_SYSTEM_COMPARATOR

public static final Comparator PATH_SYSTEM_COMPARATOR
System sensitive path comparator instance (see SYSTEM)

PATH_SYSTEM_REVERSE

public static final Comparator PATH_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (see SYSTEM)

Constructor Detail

PathFileComparator

public PathFileComparator()
Construct a case sensitive file path comparator instance.

PathFileComparator

public PathFileComparator(IOCase caseSensitivity)
Construct a file path 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 paths of two files 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 path is less than the second, zero if the paths are the same and a positive value if the first files path is greater than the second file.

Copyright (c) 2002-2011 Apache Software Foundation