public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 3){ throw new FormulaException("choice function need 3 arguments.we have " + getArgumentCount()); } Expression boolExpr = getArgument(0); ExprValue boolValue = boolExpr.getValue(provider); if (boolValue.getBoolean()){ return getArgument(1).getValue(provider); }else{ return getArgument(2).getValue(provider); } } }
right.getValue(provider)) <= 0); case OP_Or: return new ExprValue(left.getValue(provider).getBoolean() || right.getValue(provider).getBoolean()); case OP_And: return new ExprValue(left.getValue(provider).getBoolean() && right.getValue(provider).getBoolean()); default:
ExprValue value = expr.getValue(provider); if (value.getDataType() == DataType.Boolean){ return new ExprValue(!value.getBoolean());