org.apache.commons.io.comparator
Class CompositeFileComparator

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

public class CompositeFileComparator
extends Object
implements 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:
2.0
Version:
$Id: CompositeFileComparator.java 1304052 2012-03-22 20:55:29Z ggregory $
See Also:
Serialized Form

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

Parameters:
delegates - The delegate file comparators

CompositeFileComparator

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

Parameters:
delegates - The delegate file comparators
Method Detail

compare

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

Specified by:
compare in interface Comparator<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 String toString()
String representation of this file comparator.

Returns:
String representation of this file comparator

sort

public File[] sort(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:
2.0

sort

public List<File> sort(List<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:
2.0


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.