org.apache.commons.io.comparator
Class CompositeFileComparator

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

public class CompositeFileComparator
extends java.lang.Object
implements java.io.Serializable

Compare two files using a set of delegate file Comparator.

This comparator can be used to sort lists or arrays of files by combining a number other comparators.

Example of sorting a list of files by type (i.e. directory or file) and then by name:

       CompositeFileComparator comparator =
                       new CompositeFileComparator(
                                   DirectoryFileComparator.DIRECTORY_COMPARATOR,
                                   NameFileComparator.NAME_COMPARATOR);
       List<File> list = ...
       comparator.sort(list);
 

Since:
Commons IO 2.0
Version:
$Revision: 896991 $ $Date: 2010-01-07 20:03:42 +0000 (Thu, 07 Jan 2010) $
See Also:
Serialized Form

Constructor Summary
CompositeFileComparator(java.util.Comparator<java.io.File>... delegates)
          Create a composite comparator for the set of delegate comparators.
CompositeFileComparator(java.lang.Iterable<java.util.Comparator<java.io.File>> delegates)
          Create a composite comparator for the set of delegate comparators.
 
Method Summary
 int compare(java.io.File file1, java.io.File file2)
          Compare the two files using delegate comparators.
 java.io.File[] sort(java.io.File... files)
          Sort an array of files.
 java.util.List<java.io.File> sort(java.util.List<java.io.File> files)
          Sort a List of files.
 java.lang.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
 

Constructor Detail

CompositeFileComparator

public CompositeFileComparator(java.util.Comparator<java.io.File>... delegates)
Create a composite comparator for the set of delegate comparators.

Parameters:
delegates - The delegate file comparators

CompositeFileComparator

public CompositeFileComparator(java.lang.Iterable<java.util.Comparator<java.io.File>> delegates)
Create a composite comparator for the set of delegate comparators.

Parameters:
delegates - The delegate file comparators
Method Detail

compare

public int compare(java.io.File file1,
                   java.io.File file2)
Compare the two files using delegate comparators.

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:
the first non-zero result returned from the delegate comparators or zero.

toString

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

Returns:
String representation of this file comparator

sort

public java.io.File[] sort(java.io.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:
Commons IO 2.0

sort

public java.util.List<java.io.File> sort(java.util.List<java.io.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:
Commons IO 2.0


Copyright © 2002-2011 Apache Software Foundation. All Rights Reserved.