1 33 package net.sf.jga.fn.adaptor; 34 35 import net.sf.jga.fn.BinaryFunctor; 36 import net.sf.jga.fn.Generator; 37 import net.sf.jga.fn.UnaryFunctor; 38 39 46 47 public class Generate1st<T1,T2,R> extends UnaryFunctor<T2,R> { 48 49 static final long serialVersionUID = -7075574361370967089L; 50 51 private BinaryFunctor<T1,T2,R> _fn; 53 54 private Generator<T1> _gen; 56 57 public Generate1st(BinaryFunctor<T1,T2,R> fn, Generator<T1> gen) { 58 _fn = fn; 59 _gen = gen; 60 } 61 62 65 66 public BinaryFunctor<T1,T2,R> getFunctor() { return _fn; } 67 68 71 72 public Generator<T1> getGenerator() { return _gen; } 73 74 78 public R fn(T2 arg) { 79 return _fn.fn(_gen.gen(), arg); 80 } 81 82 86 public void accept(net.sf.jga.fn.Visitor v) { 87 if (v instanceof Generate1st.Visitor) 88 ((Generate1st.Visitor)v).visit(this); 89 else 90 v.visit(this); 91 } 92 93 95 public String toString() { 96 return _fn+".generate1st("+_gen+")"; 97 } 98 99 101 105 public interface Visitor extends net.sf.jga.fn.Visitor { 106 public void visit(Generate1st host); 107 } 108 } 109 | Popular Tags |