@Override public OMatchesCondition copy() { OMatchesCondition result = new OMatchesCondition(-1); result.expression = expression == null ? null : expression.copy(); result.right = right; result.rightParam = rightParam == null ? null : rightParam.copy(); result.rightExpression = rightExpression == null ? null : rightExpression.copy(); return result; }
@Override public boolean evaluate(OIdentifiable currentRecord, OCommandContext ctx) { String regex = right; if (regex != null) { regex = regex.substring(1, regex.length() - 1); } else if (rightExpression != null) { Object val = rightExpression.execute(currentRecord, ctx); if (val instanceof String) { regex = (String) val; } else { return false; } } else { Object paramVal = rightParam.getValue(ctx.getInputParameters()); if (paramVal instanceof String) { regex = (String) paramVal; } else { return false; } } Object value = expression.execute(currentRecord, ctx); return matches(value, regex, ctx); }
final public OBooleanExpression MatchesCondition() throws ParseException { OMatchesCondition jjtn000 = new OMatchesCondition(JJTMATCHESCONDITION); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); jjtn000.jjtSetFirstToken(getToken(1));Token token; try { jjtn000.expression = Expression(); jjtn000.jjtSetLastToken(getToken(0)); {if (true) return jjtn000;} } catch (Throwable jjte000) { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); jjtn000.jjtSetLastToken(getToken(0));
@Override public boolean evaluate(OResult currentRecord, OCommandContext ctx) { String regex = right; if (regex != null) { regex = regex.substring(1, regex.length() - 1); } else if (rightExpression != null) { Object val = rightExpression.execute(currentRecord, ctx); if (val instanceof String) { regex = (String) val; } else { return false; } } else { Object paramVal = rightParam.getValue(ctx.getInputParameters()); if (paramVal instanceof String) { regex = (String) paramVal; } else { return false; } } Object value = expression.execute(currentRecord, ctx); return matches(value, regex, ctx); }