1 package net.sf.jga.fn.algorithm; 33 34 import java.util.Collection ; 35 import java.util.Collections ; 36 import java.util.Comparator ; 37 import net.sf.jga.fn.BinaryFunctor; 38 import net.sf.jga.fn.UnaryFunctor; 39 40 50 51 public class MinValue<T> extends UnaryFunctor<Collection <? extends T>, T> { 52 53 static final long serialVersionUID = 8518667936731775433L; 54 55 private Comparator <T> _comp; 56 57 63 public MinValue(Comparator <T> comp) { 64 if (comp == null) 65 throw new IllegalArgumentException (); 66 67 _comp = comp; 68 } 69 70 73 public Comparator <T> getComparator() { 74 return _comp; 75 } 76 77 81 public T fn(Collection <? extends T> collection) { 82 return Collections.min(collection, _comp); 83 } 84 85 89 public void accept(net.sf.jga.fn.Visitor v) { 90 if (v instanceof MinValue.Visitor) 91 ((MinValue.Visitor)v).visit(this); 92 else 93 v.visit(this); 94 } 95 96 98 public String toString() { 99 return "MinValue"; 100 } 101 102 104 107 public interface Visitor extends net.sf.jga.fn.Visitor { 108 public void visit(MinValue host); 109 } 110 } 111 | Popular Tags |