package com.googlecode.totallylazy.comparators; import com.googlecode.totallylazy.Sequence; import java.util.Comparator; import static com.googlecode.totallylazy.Sequences.sequence; public class CompositeComparator<T> implements Comparator<T> { private final Sequence<Comparator<? super T>> comparators; public CompositeComparator(Iterable<Comparator<? super T>> comparators) {this.comparators = sequence(comparators);} public int compare(T m1, T m2) { for (Comparator<? super T> comparator : comparators) { int comparisonResult = comparator.compare(m1, m2); if (comparisonResult != 0) return comparisonResult; } return 0; } public Sequence<Comparator<? super T>> comparators(){ return comparators; } }