org.apache.commons.io.comparator

Class ExtensionFileComparator

public class ExtensionFileComparator extends Object implements Comparator, Serializable

Compare the file name extensions for order (see getExtension).

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

       List<File> list = ...
       Collections.sort(list, ExtensionFileComparator.EXTENSION_COMPARATOR);
 

Example of a reverse case-insensitive file extension sort using the EXTENSION_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       Arrays.sort(array, ExtensionFileComparator.EXTENSION_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 ComparatorEXTENSION_COMPARATOR
Case-sensitive extension comparator instance (see SENSITIVE)
static ComparatorEXTENSION_INSENSITIVE_COMPARATOR
Case-insensitive extension comparator instance (see INSENSITIVE)
static ComparatorEXTENSION_INSENSITIVE_REVERSE
Reverse case-insensitive extension comparator instance (see INSENSITIVE)
static ComparatorEXTENSION_REVERSE
Reverse case-sensitive extension comparator instance (see SENSITIVE)
static ComparatorEXTENSION_SYSTEM_COMPARATOR
System sensitive extension comparator instance (see SYSTEM)
static ComparatorEXTENSION_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (see SYSTEM)
Constructor Summary
ExtensionFileComparator()
Construct a case sensitive file extension comparator instance.
ExtensionFileComparator(IOCase caseSensitivity)
Construct a file extension comparator instance with the specified case-sensitivity.
Method Summary
intcompare(Object obj1, Object obj2)
Compare the extensions of two files the specified case sensitivity.

Field Detail

caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

EXTENSION_COMPARATOR

public static final Comparator EXTENSION_COMPARATOR
Case-sensitive extension comparator instance (see SENSITIVE)

EXTENSION_INSENSITIVE_COMPARATOR

public static final Comparator EXTENSION_INSENSITIVE_COMPARATOR
Case-insensitive extension comparator instance (see INSENSITIVE)

EXTENSION_INSENSITIVE_REVERSE

public static final Comparator EXTENSION_INSENSITIVE_REVERSE
Reverse case-insensitive extension comparator instance (see INSENSITIVE)

EXTENSION_REVERSE

public static final Comparator EXTENSION_REVERSE
Reverse case-sensitive extension comparator instance (see SENSITIVE)

EXTENSION_SYSTEM_COMPARATOR

public static final Comparator EXTENSION_SYSTEM_COMPARATOR
System sensitive extension comparator instance (see SYSTEM)

EXTENSION_SYSTEM_REVERSE

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

Constructor Detail

ExtensionFileComparator

public ExtensionFileComparator()
Construct a case sensitive file extension comparator instance.

ExtensionFileComparator

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

Copyright (c) 2002-2011 Apache Software Foundation