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 Generate2nd<T1,T2,R> extends UnaryFunctor<T1,R> { 48 49 static final long serialVersionUID = 8944237143829635388L; 50 51 private BinaryFunctor<T1,T2,R> _fn; 53 54 private Generator<T2> _gen; 56 57 public Generate2nd(BinaryFunctor<T1,T2,R> fn, Generator<T2> 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<T2> getGenerator() { return _gen; } 73 74 78 public R fn(T1 arg) { 79 return _fn.fn(arg, _gen.gen()); 80 } 81 82 86 public void accept(net.sf.jga.fn.Visitor v) { 87 if (v instanceof Generate2nd.Visitor) 88 ((Generate2nd.Visitor)v).visit(this); 89 else 90 v.visit(this); 91 } 92 93 95 public String toString() { 96 return _fn+".generate2nd("+_gen+")"; 97 } 98 99 101 105 public interface Visitor extends net.sf.jga.fn.Visitor { 106 public void visit(Generate2nd host); 107 } 108 } 109 | Popular Tags |