Refine search
public static Object eval(final String expression) { ExpressionCompiler compiler = new ExpressionCompiler(getRevisedExpression(expression), WID_PARSER_CONTEXT); if(KiePolicyHelper.isPolicyEnabled()) { return AccessController.doPrivileged(new PrivilegedAction<Object>() { @Override public Object run() { return MVEL.executeExpression(compiler.compile(), new HashMap()); } }, KiePolicyHelper.getAccessContext()); } else { return MVEL.executeExpression(compiler.compile(), new HashMap()); } }
ParserContext parserContext = new ParserContext(); ExpressionCompiler compiler = new ExpressionCompiler(actionString, parserContext); compiler.setVerifying(true); compiler.compile(); List<ErrorDetail> mvelErrors = parserContext.getErrorList(); if (mvelErrors != null) {
@Test public void testDebugSymbolCount() { String expr = "System.out.println( \"a1\" );\n" + "System.out.println( \"a2\" );\n" + "System.out.println( \"a3\" );\n" + "System.out.println( \"a4\" );\n"; ParserContext context = new ParserContext(); context.setDebugSymbols( true ); context.addImport( "System", System.class ); context.setStrictTypeEnforcement( true ); //context.setDebugSymbols( true ); context.setSourceFile( "mysource" ); ExpressionCompiler compiler = new ExpressionCompiler( expr, context ); Serializable compiledExpression = compiler.compile(); String s = DebugTools.decompile( compiledExpression ); System.out.println( "s " + s ); int fromIndex = 0; int count = 0; while ( (fromIndex = s.indexOf( "DEBUG_SYMBOL", fromIndex + 1 )) > -1 ) { count++; } assertEquals( 4, count ); }
/** * Performs an analysis compileShared, which will populate the ParserContext with type, input and variable information, * but will not produce a payload. * * @param expression - the expression to analyze * @param ctx - the parser context */ public static void analysisCompile(char[] expression, ParserContext ctx) { ExpressionCompiler compiler = new ExpressionCompiler(expression, ctx); compiler.setVerifyOnly(true); compiler.compile(); }
public void testParsingStability2() { Map<String, Object> imports = new HashMap<String, Object>(); imports.put("java.awt.Dimension", Dimension.class); final ParserContext parserContext = new ParserContext(imports, null, "sourceFile"); parserContext.setStrictTypeEnforcement(false); ExpressionCompiler compiler = new ExpressionCompiler("( dim.height == 1 || dim.height == ( 1+1) || dim.height == x )", parserContext); compiler.compile(); }
public void testVarInputs2() { ParserContext ctx = new ParserContext(); ExpressionCompiler compiler = new ExpressionCompiler("test != foo && bo.addSomething(trouble); String bleh = foo; twa = bleh;", ctx); compiler.compile(); System.out.println(ctx.getVarOrInputType("bleh")); }
public void testAssertKeyword() { ExpressionCompiler compiler = new ExpressionCompiler("assert 1 == 2;"); Serializable s = compiler.compile(); try { executeExpression(s); } catch (AssertionError e) { return; } assertTrue(false); }
public void testParserErrorHandling() { final ParserContext ctx = new ParserContext(); ExpressionCompiler compiler = new ExpressionCompiler("a[", ctx); try { compiler.compile(); } catch (Exception e) { return; } assertTrue(false); }
public void testVarInputs3() { ExpressionCompiler compiler = new ExpressionCompiler("addresses['home'].street"); compiler.compile(); assertFalse(compiler.getParserContextState().getInputs().keySet().contains("home")); }
public void testVarInputs4() { ExpressionCompiler compiler = new ExpressionCompiler("System.out.println( message );"); compiler.compile(); assertTrue(compiler.getParserContextState().getInputs().keySet().contains("message")); }
public void testWhileUsingImports() { Map<String, Object> imports = new HashMap<String, Object>(); imports.put("ArrayList", java.util.ArrayList.class); imports.put("List", java.util.List.class); ParserContext context = new ParserContext(imports, null, "testfile"); ExpressionCompiler compiler = new ExpressionCompiler("List list = new ArrayList(); return (list == empty)", context); assertTrue((Boolean) executeExpression(compiler.compile(), new DefaultLocalVariableResolverFactory())); }
public void testEvaluationRegression() { ExpressionCompiler compiler = new ExpressionCompiler("(p.age * 2)"); compiler.compile(); assertTrue(compiler.getParserContextState().getInputs().containsKey("p")); }
public void testJIRA96() { ParserContext ctx = new ParserContext(); ctx.setStrictTypeEnforcement(true); ctx.addInput("fooString", String[].class); ExpressionCompiler compiler = new ExpressionCompiler("fooString[0].toUpperCase()", ctx); compiler.compile(); }
public void testProvidedExternalTypes() { ParserContext ctx = new ParserContext(); ctx.setStrictTypeEnforcement(true); ctx.addInput("foo", Foo.class); ExpressionCompiler compiler = new ExpressionCompiler("foo.bar", ctx); compiler.compile(); }
public void testParameterizedTypeInStrictMode() { ParserContext ctx = new ParserContext(); ctx.setStrongTyping(true); ctx.addInput("foo", HashMap.class, new Class[]{String.class, String.class}); ExpressionCompiler compiler = new ExpressionCompiler("foo.get('bar').toUpperCase()", ctx); compiler.compile(); }
public void testTestIntToLong() { String s = "1+(long)a"; ParserContext pc = new ParserContext(); pc.addInput("a", Integer.class); ExpressionCompiler compiler = new ExpressionCompiler(s, pc); CompiledExpression expr = compiler.compile(); Map vars = new HashMap(); vars.put("a", 1); Object r = ((ExecutableStatement) expr).getValue(null, new MapVariableResolverFactory(vars)); assertEquals(new Long(2), r); }
public void testInlineWithImpliedThis() { Base b = new Base(); ExpressionCompiler expr = new ExpressionCompiler(".{ data = 'foo' }"); CompiledExpression compiled = expr.compile(); executeExpression(compiled, b); assertEquals(b.data, "foo"); }
public void testMultiVarDeclr() { String ex = "var a, b, c"; ParserContext ctx = new ParserContext(); ExpressionCompiler compiler = new ExpressionCompiler(ex, ctx); compiler.setVerifyOnly(true); compiler.compile(); assertEquals(3, ctx.getVariables().size()); }
public void testVarDeclr() { String ex = "var a"; ParserContext ctx = new ParserContext(); ExpressionCompiler compiler = new ExpressionCompiler(ex, ctx); compiler.setVerifyOnly(true); compiler.compile(); assertEquals(1, ctx.getVariables().size()); }
public void testDynamicImportsInMap() { ParserContext ctx = new ParserContext(); ctx.addPackageImport("org.mvel2.tests.core.res"); ExpressionCompiler compiler = new ExpressionCompiler("[ 'bobba' : new User('Bobba', 'Feta') ]", ctx); Map map = (Map) executeExpression(compiler.compile()); User user = (User) map.get("bobba"); assertEquals("Bobba", user.getFirstName()); }