| 1 33 package net.sf.jga.fn.adaptor; 34 35 import net.sf.jga.fn.BinaryFunctor; 36 import net.sf.jga.util.ArrayUtils; 37 38 45 46 public class ApplyBinary<T1,T2> extends BinaryFunctor<T1,T2,Object []> { 47 48 static final long serialVersionUID = 626713969730810589L; 49 50 private BinaryFunctor<T1,T2,?>[] _functors; 52 53 public ApplyBinary (BinaryFunctor<T1,T2,?>[] functors){ 54 _functors = functors; 55 } 56 57 public BinaryFunctor<T1,T2,?>[] getFunctors() { 58 return _functors; 59 } 60 61 public Object [] fn(T1 arg1, T2 arg2) { 62 Object [] result = new Object [_functors.length]; 63 for (int i = 0; i < _functors.length; ++i) { 64 result[i] = _functors[i].fn(arg1,arg2); 65 } 66 67 return result; 68 } 69 70 74 public void accept(net.sf.jga.fn.Visitor v) { 75 if (v instanceof ApplyBinary.Visitor) 76 ((ApplyBinary.Visitor)v).visit(this); 77 else 78 v.visit(this); 79 } 80 81 83 public String toString() { 84 return ArrayUtils.toString(_functors); 85 } 86 87 89 92 public interface Visitor extends net.sf.jga.fn.Visitor { 93 public void visit(ApplyBinary host); 94 } 95 } 96 | Popular Tags |