protected boolean processAtomicExpression( RuleBuildContext context, Pattern pattern, BaseDescr d, String expr, Map<String, OperatorDescr> aliases ) { if ( d instanceof AtomicExprDescr ) { Matcher m = evalRegexp.matcher( ((AtomicExprDescr) d).getExpression() ); if ( m.find() ) { // MVELDumper already stripped the eval // this will build the eval using the specified dialect PredicateDescr pdescr = new PredicateDescr( context.getRuleDescr().getResource(), expr ); pdescr.copyLocation( d ); buildEval( context, pattern, pdescr, aliases, expr, true ); return true; } } return false; }
protected void createAndBuildPredicate( RuleBuildContext context, Pattern pattern, BaseDescr base, String expr, Map<String, OperatorDescr> aliases ) { Dialect dialect = context.getDialect(); MVELDialect mvelDialect = (MVELDialect) context.getDialect( "mvel" ); context.setDialect( mvelDialect ); PredicateDescr pdescr = new PredicateDescr( context.getRuleDescr().getResource(), expr ); pdescr.copyParameters( base ); pdescr.copyLocation( base ); buildEval( context, pattern, pdescr, aliases, expr, false ); // fall back to original dialect context.setDialect(dialect); }