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