package org.nutz.el.opt.logic;
import org.nutz.castor.Castors;
import org.nutz.el.opt.TwoTernary;
/**
* and
*
* @author juqkai(juqkai@gmail.com)
*
*/
public class AndOpt extends TwoTernary {
public int fetchPriority() {
return 11;
}
public Object calculate() {
Object lval = calculateItem(this.left);
if (null == lval)
return false;
if (!(lval instanceof Boolean)) {
// throw new ElException("操作数类型错误!");
return Castors.me().castTo(lval, Boolean.class);
}
if (!(Boolean) lval) {
return false;
}
Object rval = calculateItem(this.right);
if (null == rval)
return false;
if (!(rval instanceof Boolean)) {
// throw new ElException("操作数类型错误!");
return Castors.me().castTo(rval, Boolean.class);
}
if (!(Boolean) rval) {
return false;
}
return true;
}
public String fetchSelf() {
return "&&";
}
}