1 package net.sf.jga.fn.algorithm; 33 34 import java.util.Iterator ; 35 import net.sf.jga.fn.BinaryFunctor; 36 import net.sf.jga.util.TransformBinaryIterator; 37 38 47 48 public class TransformBinary<T1,T2,R> 49 extends BinaryFunctor<Iterator <? extends T1>, Iterator <? extends T2>, 50 Iterator <R>> 51 { 52 static final long serialVersionUID = -6353149079946565288L; 53 54 private BinaryFunctor<T1,T2,R> _fn; 56 57 62 public TransformBinary(BinaryFunctor<T1,T2,R> fn) { 63 if (fn == null) 64 throw new IllegalArgumentException (); 65 66 _fn = fn; 67 } 68 69 72 public BinaryFunctor<T1,T2,R> getFunction() { 73 return _fn; 74 } 75 76 85 public Iterator <R> 86 fn(Iterator <? extends T1> i1, Iterator <? extends T2> i2) 87 { 88 return new TransformBinaryIterator<T1,T2,R>(i1,i2,_fn); 89 } 90 91 95 public void accept(net.sf.jga.fn.Visitor v) { 96 if (v instanceof TransformBinary.Visitor) 97 ((TransformBinary.Visitor)v).visit(this); 98 else 99 v.visit(this); 100 } 101 102 104 public String toString() { 105 return "TransformBinary("+_fn+")"; 106 } 107 108 110 113 public interface Visitor extends net.sf.jga.fn.Visitor { 114 public void visit(TransformBinary host); 115 } 116 } 117 | Popular Tags |