org.apache.commons.io.comparator
Class ExtensionFileComparator

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

public class ExtensionFileComparator
extends AbstractFileComparator
implements java.io.Serializable

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

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 = ...
       ExtensionFileComparator.EXTENSION_COMPARATOR.sort(list);
 

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

       File[] array = ...
       ExtensionFileComparator.EXTENSION_INSENSITIVE_REVERSE.sort(array);
 

Since:
Commons IO 1.4
Version:
$Revision: 1003216 $ $Date: 2010-09-30 15:39:21 -0400 (Thu, 30 Sep 2010) $
See Also:
Serialized Form

Field Summary
private  IOCase caseSensitivity
          Whether the comparison is case sensitive.
static java.util.Comparator<java.io.File> EXTENSION_COMPARATOR
          Case-sensitive extension comparator instance (see IOCase.SENSITIVE)
static java.util.Comparator<java.io.File> EXTENSION_INSENSITIVE_COMPARATOR
          Case-insensitive extension comparator instance (see IOCase.INSENSITIVE)
static java.util.Comparator<java.io.File> EXTENSION_INSENSITIVE_REVERSE
          Reverse case-insensitive extension comparator instance (see IOCase.INSENSITIVE)
static java.util.Comparator<java.io.File> EXTENSION_REVERSE
          Reverse case-sensitive extension comparator instance (see IOCase.SENSITIVE)
static java.util.Comparator<java.io.File> EXTENSION_SYSTEM_COMPARATOR
          System sensitive extension comparator instance (see IOCase.SYSTEM)
static java.util.Comparator<java.io.File> EXTENSION_SYSTEM_REVERSE
          Reverse system sensitive path comparator instance (see IOCase.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
 int compare(java.io.File file1, java.io.File file2)
          Compare the extensions of two files the specified case sensitivity.
 java.lang.String toString()
          String representation of this file comparator.
 
Methods inherited from class org.apache.commons.io.comparator.AbstractFileComparator
sort, sort
 
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

EXTENSION_COMPARATOR

public static final java.util.Comparator<java.io.File> EXTENSION_COMPARATOR
Case-sensitive extension comparator instance (see IOCase.SENSITIVE)


EXTENSION_REVERSE

public static final java.util.Comparator<java.io.File> EXTENSION_REVERSE
Reverse case-sensitive extension comparator instance (see IOCase.SENSITIVE)


EXTENSION_INSENSITIVE_COMPARATOR

public static final java.util.Comparator<java.io.File> EXTENSION_INSENSITIVE_COMPARATOR
Case-insensitive extension comparator instance (see IOCase.INSENSITIVE)


EXTENSION_INSENSITIVE_REVERSE

public static final java.util.Comparator<java.io.File> EXTENSION_INSENSITIVE_REVERSE
Reverse case-insensitive extension comparator instance (see IOCase.INSENSITIVE)


EXTENSION_SYSTEM_COMPARATOR

public static final java.util.Comparator<java.io.File> EXTENSION_SYSTEM_COMPARATOR
System sensitive extension comparator instance (see IOCase.SYSTEM)


EXTENSION_SYSTEM_REVERSE

public static final java.util.Comparator<java.io.File> EXTENSION_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (see IOCase.SYSTEM)


caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

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(java.io.File file1,
                   java.io.File file2)
Compare the extensions of two files the specified case sensitivity.

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

toString

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

Overrides:
toString in class AbstractFileComparator
Returns:
String representation of this file comparator


Copyright (c) 2002-2011 Apache Software Foundation