org.apache.commons.io.comparator

Class PathFileComparator

Implemented Interfaces:
Comparator, Serializable

public class PathFileComparator
extends java.lang.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);
 

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

Field Summary

static Comparator
PATH_COMPARATOR
Case-sensitive path comparator instance (see IOCase.SENSITIVE)
static Comparator
PATH_INSENSITIVE_COMPARATOR
Case-insensitive path comparator instance (see IOCase.INSENSITIVE)
static Comparator
PATH_INSENSITIVE_REVERSE
Reverse case-insensitive path comparator instance (see IOCase.INSENSITIVE)
static Comparator
PATH_REVERSE
Reverse case-sensitive path comparator instance (see IOCase.SENSITIVE)
static Comparator
PATH_SYSTEM_COMPARATOR
System sensitive path comparator instance (see IOCase.SYSTEM)
static Comparator
PATH_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (see IOCase.SYSTEM)
private IOCase
caseSensitivity
Whether the comparison is case sensitive.

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

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

Field Details

PATH_COMPARATOR

public static final Comparator PATH_COMPARATOR

PATH_INSENSITIVE_COMPARATOR

public static final Comparator PATH_INSENSITIVE_COMPARATOR

PATH_INSENSITIVE_REVERSE

public static final Comparator PATH_INSENSITIVE_REVERSE

PATH_REVERSE

public static final Comparator PATH_REVERSE

PATH_SYSTEM_COMPARATOR

public static final Comparator PATH_SYSTEM_COMPARATOR

PATH_SYSTEM_REVERSE

public static final Comparator PATH_SYSTEM_REVERSE

caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

Constructor Details

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 Details

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-2009 Apache Software Foundation