org.apache.commons.io.comparator
Class CompositeFileComparator

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

public class CompositeFileComparator
extends AbstractFileComparator
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

Field Summary
private  java.util.Comparator<java.io.File>[] delegates
           
private static java.util.Comparator<?>[] NO_COMPARATORS
           
 
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.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

NO_COMPARATORS

private static final java.util.Comparator<?>[] NO_COMPARATORS

delegates

private final java.util.Comparator<java.io.File>[] delegates
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.

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


Copyright (c) 2002-2012 Apache Software Foundation