ch.lambdaj.function.compare.ArgumentComparator Maven / Gradle / Ivy
package ch.lambdaj.function.compare;
import static ch.lambdaj.function.argument.ArgumentsFactory.*;
import java.util.*;
import ch.lambdaj.function.argument.*;
/**
* @author Mario Fusco
*/
public class ArgumentComparator implements Comparator {
private Argument argument;
private Comparator extends Object> comparator;
public ArgumentComparator(A argument) {
this(actualArgument(argument));
}
public ArgumentComparator(Argument argument) {
this(argument, null);
}
public ArgumentComparator(A argument, Comparator extends Object> comparator) {
this(actualArgument(argument), comparator);
}
public ArgumentComparator(Argument argument, Comparator extends Object> comparator) {
this.argument = argument;
this.comparator = comparator != null ? comparator : DEFAULT_ARGUMENT_COMPARATOR;
}
@SuppressWarnings("unchecked")
public int compare(T o1, T o2) {
Object val1 = argument.evaluate(o1);
Object val2 = argument.evaluate(o2);
if (val1 == null && val2 == null) return 0;
return ((Comparator © 2015 - 2025 Weber Informatics LLC | Privacy Policy