/** * to compute the expression with {@code DataProvider} * @param provider instance of DataProvider * @return value of expr */ @Override public ExprValue getValue(DataProvider provider){ // NOSONAR switch (operator) { case OP_Add: return left.getValue(provider).add(right.getValue(provider)); case OP_Sub: return left.getValue(provider).sub(right.getValue(provider)); case OP_Mul: return left.getValue(provider).mul(right.getValue(provider)); case OP_Div: return left.getValue(provider).div(right.getValue(provider)); case OP_Mod: return left.getValue(provider).mod(right.getValue(provider)); default: } throw new FormulaException("Unsupport operator:" + operator); }
@Override protected void onExecute(XsObject root,XsObject current, LogicletContext ctx, ExecuteWatcher watcher) { if (expr != null){ try { String value = expr.getValue(ctx).toString(); ctx.SetValue(id, value); }catch (Exception ex){ logger.error(ExceptionUtils.getStackTrace(ex)); } } }
@Override public String onSelect(DataProvider _dataProvider) { try{ return expr.getValue(_dataProvider).toString(); }catch (Exception ex){ return getDefaultValue(); } }
if (o instanceof Expression){ Expression expr = (Expression)o; ExprValue value = expr.getValue(p); if (value != null){ sb.append(value.toString());
switch (operator) { case OP_Greater: return new ExprValue(left.getValue(provider).compareTo( right.getValue(provider)) > 0); case OP_Greater_Equal: return new ExprValue(left.getValue(provider).compareTo( right.getValue(provider)) >= 0); case OP_Equal: return new ExprValue(left.getValue(provider).compareTo( right.getValue(provider)) == 0); case OP_Not_Equal: return new ExprValue(left.getValue(provider).compareTo( right.getValue(provider)) != 0); case OP_Less: return new ExprValue(left.getValue(provider).compareTo( right.getValue(provider)) < 0); case OP_Less_Equal: return new ExprValue(left.getValue(provider).compareTo( 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:
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 3){ throw new FormulaException("substr function need 3 argument."); } String string = getArgument(0).getValue(provider).getString(); int startOffset = getArgument(1).getValue(provider).getInt(); int length = getArgument(2).getValue(provider).getInt(); startOffset = startOffset < 0 ? 0 : startOffset >= string.length()?string.length() - 1:startOffset; length = string.length() - startOffset < length ? string.length() - startOffset:length; return new ExprValue(string.substring(startOffset, startOffset + length)); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 2){ throw new FormulaException("nvl function need 2 arguments.we have " + getArgumentCount()); } ExprValue value = getArgument(0).getValue(provider); if (value == null){ value = getArgument(1).getValue(provider); } return value; }
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); } } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 2){ throw new FormulaException("substr function need 2 argument."); } String srcString = getArgument(0).getValue(provider).getString(); String childString = getArgument(1).getValue(provider).getString(); return new ExprValue(srcString.indexOf(childString)); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 2){ throw new FormulaException("match function need 2 argument."); } String srcString = getArgument(0).getValue(provider).getString(); String regex = getArgument(1).getValue(provider).getString(); return new ExprValue(srcString.matches(regex)); } }
@Override public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 2){ throw new FormulaException("not_nvl function need 2 arguments.we have " + getArgumentCount()); } ExprValue value = getArgument(0).getValue(provider); if (value != null){ value = getArgument(1).getValue(provider); } if (value == null){ value = new ExprValue(""); } return value; } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 1){ throw new FormulaException("to_long function need 1 argument."); } String value = getArgument(0).getValue(provider).getString(); return new ExprValue(Long.valueOf(value)); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 1){ throw new FormulaException("to_double function need 1 argument."); } String value = getArgument(0).getValue(provider).getString(); return new ExprValue(Double.valueOf(value)); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 1){ throw new FormulaException("strlen function need 1 argument."); } String value = getArgument(0).getValue(provider).toString(); return new ExprValue(value.length()); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() < 1){ throw new FormulaException("to_date function need at least 1 argument.we have " + getArgumentCount()); } String pattern = "yyyyMMddHHmmss"; if (getArgument(1) != null){ pattern = getArgument(1).getValue(provider).getString(); } String value = getArgument(0).getValue(provider).getString(); return new ExprValue(DateUtil.parseDate(value, pattern)); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() != 1){ throw new FormulaException("to_string function need 1 argument."); } String value = getArgument(0).getValue(provider).toString(); return new ExprValue(value); } }
public ExprValue getValue(DataProvider provider) throws FormulaException { if (getArgumentCount() < 1){ throw new FormulaException("to_char function need at least 1 argument.we have " + getArgumentCount()); } String pattern = "yyyyMMddHHmmss"; if (getArgument(1) != null){ pattern = getArgument(1).getValue(provider).getString(); } Date value = getArgument(0).getValue(provider).getDate(); return new ExprValue(DateUtil.formatDate(value, pattern)); } }
@Override public ExprValue getValue(DataProvider provider) throws FormulaException { int arguCnt = getArgumentCount(); ExprValue bindValue = null; if (arguCnt <= 0){ bindValue = new ExprValue("?"); }else{ bindValue = getArgument(0).getValue(provider); if (arguCnt <= 1){ bind(KeyGen.uuid()); }else{ if (arguCnt <= 2){ int length = getArgument(1).getValue(provider).getInt(); bind(KeyGen.uuid(length, 0)); }else{ int length = getArgument(1).getValue(provider).getInt(); int redix = getArgument(2).getValue(provider).getInt(); bind(KeyGen.uuid(length, redix)); } } } return bindValue; } }
@Override public ExprValue getValue(DataProvider provider) throws FormulaException { int arguCnt = getArgumentCount(); if (arguCnt > 2 || arguCnt <= 0) { throw new FormulaException( "bind function need 1 argument.we have " + arguCnt); } ExprValue value = getArgument(0).getValue(provider); String varName = value.toString(); if (varContext == null) { varContext = provider.getContext(varName); } String object = provider.getValue(varName, varContext, ""); bind(object); if (arguCnt <= 1){ return new ExprValue("?"); }else{ return getArgument(1).getValue(provider); } } }
@Override public ExprValue getValue(DataProvider provider) throws FormulaException { int arguCnt = getArgumentCount(); if (arguCnt > 2 || arguCnt <= 0) { throw new FormulaException( "bind function need 1 argument.we have " + arguCnt); } ExprValue value = getArgument(0).getValue(provider); String varName = value.toString(); if (varContext == null) { varContext = provider.getContext(varName); } String object = provider.getRawValue(varName, varContext, ""); bind(object); if (arguCnt <= 1){ return new ExprValue("?"); }else{ return getArgument(1).getValue(provider); } } }