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 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 testMVEL190a() { Serializable compiled = MVEL.compileExpression("a.toString()", ParserContext.create().stronglyTyped().withInput("a", String.class)); }
public void testJIRA164e() { Serializable s = MVEL.compileExpression("10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testJIRA164f() { Serializable s = MVEL.compileExpression("10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testSetterViaMapNotation() { TestClass tc = new TestClass(); tc.getExtra().put("test", "value"); ParserContext ctx = new ParserContext(); ctx.withInput("this", TestClass.class); ctx.setStrongTyping(true); String expression = "extra[\"test\"]"; Serializable compiled = MVEL.compileSetExpression(expression, tc.getClass(), ctx); MVEL.executeSetExpression(compiled, tc, "value3"); assertEquals("value3", tc.getExtra().get("test")); }
public void testJIRA164h() { Serializable s = MVEL.compileExpression("1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 2d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
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 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 testGenericInference() { String expression = "$result = person.footributes[0].name"; ParserContext ctx; MVEL.analysisCompile(expression, ctx = ParserContext.create().stronglyTyped().withInput("person", Person.class)); assertEquals(String.class, ctx.getVarOrInputTypeOrNull("$result")); Serializable s = MVEL.compileExpression(expression, ParserContext.create().stronglyTyped().withInput("person", Person.class)); Map<String, Object> vars = new HashMap<String, Object>(); Person p = new Person(); p.setFootributes(new ArrayList<Foo>()); p.getFootributes().add(new Foo()); vars.put("person", p); assertEquals("dog", executeExpression(s, vars)); }
public void testJIRA164b() { Serializable s = MVEL.compileExpression("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 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testJIRA164c() { Serializable s = MVEL.compileExpression("1 + 1 / (var1 + var1 + 2 + 3) * 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 / (var1 + var1 + 2 + 3) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 / (var1 + var1 + 2 + 3) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 / (var1 + var1 + 2 + 3) * 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 testVarInputs5() { ParserContext pCtx = ParserContext.create().withInput("list", List.class); MVEL.analysisCompile("String nodeName = list[0];\nSystem.out.println(nodeName);nodeName = list[1];\nSystem.out.println(nodeName);", pCtx); assertEquals(1, pCtx.getInputs().size()); assertTrue(pCtx.getInputs().containsKey("list")); assertEquals(1, pCtx.getVariables().size()); assertTrue(pCtx.getVariables().containsKey("nodeName")); assertEquals(List.class, pCtx.getVarOrInputType("list")); assertEquals(String.class, pCtx.getVarOrInputType("nodeName")); }