net.lucidviews.util.io
Interface FileComparator

All Superinterfaces:
Comparator
All Known Implementing Classes:
AbstractFileComparator

public interface FileComparator
extends Comparator

An extension to the Comparator interface implemented by classes that compare files.

To implement this interface you will need to implement a compare method for comparing file objects as well as the standard compare and equals methods defined in the java.util.Comparator interface.
Classes may prefer to extend the AbstractFileComparator class, which implements the compare( Object, Object ) method, automatically routing calls to the compare( File, File ) method.
This reduces the number of methods that need to be implemented.

Since:
1.0
Version:
$Revision: 1.1 $
Author:
Stephen Battey
See Also:
Comparator

Method Summary
 int compare(File file1, File file2)
          Compares two Files for order.
 
Methods inherited from interface java.util.Comparator
compare, equals
 

Method Detail

compare

int compare(File file1,
            File file2)
Compares two Files for order. Returns a negative integer, zero, or a positive integer as the first file is less than, equal to, or greater than the second.

The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.

It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."

Parameters:
file1 - the first file to be compared
file2 - the second file to be compared
Returns:
a negative integer, zero, or a positive integer as the first file is less than, equal to, or greater than the second