1 33 package net.sf.jga.fn.comparison; 34 35 import net.sf.jga.fn.BinaryFunctor; 36 import java.io.Serializable ; 37 import java.util.Comparator ; 38 39 52 53 public class ComparatorFn<T> extends BinaryFunctor<T,T,Integer > implements Comparator <T> { 54 55 static final long serialVersionUID = -7851342943467256913L; 56 57 private Comparator <T> _comp; 58 59 64 public ComparatorFn(Comparator <T> comp) { 65 if (comp == null) { 66 throw new IllegalArgumentException ("Comparator may not be null"); 67 } 68 69 _comp = comp; 70 } 71 72 75 public Comparator <T> getComparator() { return _comp; } 76 77 79 87 public Integer fn(T x, T y) { 88 return new Integer (compare(x, y)); 89 } 90 91 95 public void accept(net.sf.jga.fn.Visitor v) { 96 if (v instanceof ComparatorFn.Visitor) 97 ((ComparatorFn.Visitor)v).visit(this); 98 else 99 v.visit(this); 100 } 101 102 104 public int compare(T x, T y) { 105 return _comp.compare(x, y); 106 } 107 108 110 public String toString() { 111 return "ComperatorFn"; 112 } 113 114 116 119 public interface Visitor extends net.sf.jga.fn.Visitor { 120 public void visit(ComparatorFn host); 121 } 122 } 123 124 125 126 | Popular Tags |