1 33 package net.sf.jga.fn.adaptor; 34 35 import net.sf.jga.fn.Generator; 36 import net.sf.jga.fn.UnaryFunctor; 37 38 46 47 public class Generate<T,R> extends Generator<R> { 48 49 static final long serialVersionUID = -7866951985301046565L; 50 51 private UnaryFunctor<T,R> _fn; 53 54 private Generator<T> _gen; 56 57 public Generate(UnaryFunctor<T,R> fn, Generator<T> gen) { 58 _fn = fn; 59 _gen = gen; 60 } 61 62 66 public UnaryFunctor<T,R> getFunctor() { return _fn; } 67 68 71 public Generator<T> getGenerator() { return _gen; } 72 73 76 public R gen() { 77 return _fn.fn(_gen.gen()); 78 } 79 80 84 public void accept(net.sf.jga.fn.Visitor v) { 85 if (v instanceof Generate.Visitor) 86 ((Generate.Visitor)v).visit(this); 87 else 88 v.visit(this); 89 } 90 91 93 public String toString() { 94 return _fn+".generate("+_gen+")"; 95 } 96 97 99 103 public interface Visitor extends net.sf.jga.fn.Visitor { 104 public void visit(Generate host); 105 } 106 } 107 | Popular Tags |