package org.nutz.el.opt.logic; import java.util.Queue; import org.nutz.castor.Castors; import org.nutz.el.opt.AbstractOpt; /** * Not(!) * * @author juqkai(juqkai@gmail.com) * */ public class NotOpt extends AbstractOpt { private Object right; public int fetchPriority() { return 7; } public void wrap(Queue<Object> rpn) { right = rpn.poll(); } public Object calculate() { Object rval = calculateItem(this.right); if (null == rval) return true; if (rval instanceof Boolean) { return !(Boolean) rval; } // throw new ElException("'!'操作符操作失败!"); return !Castors.me().castTo(rval, Boolean.class); } public String fetchSelf() { return "!"; } }