1 package jfun.yan.xml.nuts.optional; 2 3 import jfun.yan.Component; 4 import jfun.yan.Map2; 5 import jfun.yan.Monad; 6 7 14 public abstract class BinaryPredicateNut extends BinaryNut { 15 20 public abstract boolean predicate(Object v1, Object v2); 21 public Component eval(){ 22 if(!isVal1Set() || !isVal2Set()) 23 throw raise("both values should be set for comparison."); 24 26 final Map2 cmp = new Map2(){ 27 public Object map(Object o1, Object o2){ 28 return Boolean.valueOf(predicate(o1, o2)); 29 } 30 }; 31 final Component c1 = getComponent1(); 32 final Component c2 = getComponent2(); 33 return Monad.map(c1, c2, cmp).cast(boolean.class); 34 } 35 } 36 | Popular Tags |