public static CompiledTemplate compileTemplate(InputStream stream) { return compileTemplate(stream, ParserContext.create()); }
public static CompiledTemplate compileTemplate(char[] template) { return new TemplateCompiler(template, true, ParserContext.create()).compile(); }
public static CompiledTemplate compileTemplate(CharSequence template) { return new TemplateCompiler(template, true, ParserContext.create()).compile(); }
public void testNoScopeLeakageCompiled() { String ex = "if (true) { var i = 0 }; i"; try { MVEL.compileExpression(ex, ParserContext.create().stronglyTyped()); fail("should have failed"); } catch (Exception e) { e.printStackTrace(); } } }
public static void main(String[] args) { Foo foo = new Foo("Gorkum"); Map vars = new HashMap(); vars.put("foo", foo); final ParserContext ctx = ParserContext.create() .withInput("foo", Foo.class); final String expression = "foo"; MVEL.setProperty(foo, "name", "mike"); System.out.println(foo.getName()); } }
public void testJIRA163() { Serializable s = MVEL.compileExpression("1d - 2d + (3d * 4d) * var1", ParserContext.create().withInput("var1", double.class)); Map vars = new HashMap(); vars.put("var1", 1d); assertEquals((1 - 2 + (3 * 4) * 1d), MVEL.executeExpression(s, vars)); }
public void testJIRA162() { Serializable s = MVEL.compileExpression("1d - 2d + (3d * var1) * var1", ParserContext.create().withInput("var1", double.class)); Map vars = new HashMap(); vars.put("var1", 1d); assertEquals((1 - 2 + (3 * 1d) * 1), MVEL.executeExpression(s, vars)); }
public void testTypeCalculation() { ParserContext ctx = ParserContext.create().stronglyTyped(); ctx.addInput("foo", Foo.class); Class cls = MVEL.analyze("foo.bar.testList.get(0)", ctx); assertTrue(Integer.class.isAssignableFrom(cls)); }
public void testJIRA158() { // Serializable s = MVEL.compileExpression("4/2 + Math.sin(1)"); // // assertEquals(4 / 2 + Math.sin(1), MVEL.executeExpression(s)); Serializable s = MVEL.compileExpression("(float) (4/2 + Math.sin(1))", ParserContext.create().stronglyTyped()); assertEquals((float) (4 / 2 + Math.sin(1)), MVEL.executeExpression(s)); }
public void testInExpressionComment() { Serializable s1 = MVEL.compileExpression("new String /*XXX*/(\"foo\")", ParserContext.create().stronglyTyped()); MVEL.executeExpression(s1); Serializable s2 = MVEL.compileExpression("new String/*XXX*/(\"foo\")", ParserContext.create().stronglyTyped()); MVEL.executeExpression(s2); }
public void testWithMultipleMethodCalls() { ParserContext ctx = ParserContext.create().stronglyTyped().withInput("foo", Foo.class); MVEL.compileExpression("with (foo) { setName('foo'), setBar(null) }", ctx); }
public void testJIRA164g() { Serializable s = MVEL.compileExpression("1 - 2 + (3 * var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (1 - 2 + (3 * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("1 - 2 + (3 * var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (1 - 2 + (3 * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testRandomSomething() { Foo foo = new Foo(); foo.setName("foo1"); Foo foo2 = new Foo(); foo2.setName("foo2"); MVEL.setProperty(foo, "name", 5); Serializable s = MVEL.compileExpression("name.toUpperCase()", ParserContext.create().stronglyTyped().withInput("name", String.class)); Object _return = executeExpression(s, foo); System.out.println("returned value: " + String.valueOf(_return)); _return = executeExpression(s, foo2); System.out.println("returned value: " + String.valueOf(_return)); }
public void testJIRA164d() { Serializable s = MVEL.compileExpression("1 + 1 + 1 / (var1 + var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 + 1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 + 1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testNarrowToWideCompare() { Serializable s = MVEL.compileExpression("new String('foo') == new Object()", ParserContext.create().stronglyTyped()); assertFalse((Boolean) MVEL.executeExpression(s)); }
public void testShouldFail10() { try { MVEL.compileExpression("foo = [1,1,qq,zz]", ParserContext.create().stronglyTyped()); } catch (CompileException e) { e.printStackTrace(); return; } shouldThrowException(); }
public void testJIRA164() { Serializable s = MVEL.compileExpression("1 / (var1 + var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testGenericInference2() { ParserContext ctx; MVEL.analysisCompile("$result = person.maptributes['fooey'].name", ctx = ParserContext.create().stronglyTyped().withInput("person", Person.class)); assertEquals(String.class, ctx.getVarOrInputTypeOrNull("$result")); }
public void testEgressTypeCorrect() { ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression("type", ParserContext.create().stronglyTyped() .withInput("this", Cheese.class)); assertEquals(String.class, stmt.getKnownEgressType()); }
public void testJIRA161() { Serializable s = MVEL.compileExpression("1==-(-1)", ParserContext.create().stronglyTyped()); assertEquals(1 == -(-1), MVEL.executeExpression(s)); ParserContext ctx = new ParserContext(); ctx.setStrongTyping(true); CompiledExpression compiledExpression = new ExpressionCompiler("1==-(-1)", ctx).compile(); assertEquals(1 == -(-1), MVEL.executeExpression(compiledExpression)); }