public static void analysisCompile(String expression, ParserContext ctx) { analysisCompile(expression.toCharArray(), ctx); }
public static void analysisCompile(String expression, ParserContext ctx) { analysisCompile(expression.toCharArray(), ctx); }
public static void analysisCompile(String expression, ParserContext ctx) { analysisCompile(expression.toCharArray(), ctx); }
public static SharedVariableSpaceModel compileShared(String expr, ParserContext pCtx, Object[] vars) { String[] varNames = pCtx.getIndexedVarNames(); ParserContext analysisContext = ParserContext.create(); analysisContext.setIndexAllocation(true); MVEL.analysisCompile(expr, analysisContext); Set<String> localNames = analysisContext.getVariables().keySet(); pCtx.addIndexedLocals(localNames); String[] locals = localNames.toArray(new String[localNames.size()]); String[] allVars = new String[varNames.length + locals.length]; System.arraycopy(varNames, 0, allVars, 0, varNames.length); System.arraycopy(locals, 0, allVars, varNames.length, locals.length); return new SharedVariableSpaceModel(allVars, vars); }
public static SharedVariableSpaceModel compileShared(String expr, ParserContext pCtx, Object[] vars) { String[] varNames = pCtx.getIndexedVarNames(); ParserContext analysisContext = ParserContext.create(); analysisContext.setIndexAllocation(true); MVEL.analysisCompile(expr, analysisContext); Set<String> localNames = analysisContext.getVariables().keySet(); pCtx.addIndexedLocals(localNames); String[] locals = localNames.toArray(new String[localNames.size()]); String[] allVars = new String[varNames.length + locals.length]; System.arraycopy(varNames, 0, allVars, 0, varNames.length); System.arraycopy(locals, 0, allVars, varNames.length, locals.length); return new SharedVariableSpaceModel(allVars, vars); }
public static SimpleVariableSpaceModel compile(String expr, ParserContext pCtx) { String[] varNames = pCtx.getIndexedVarNames(); ParserContext analysisContext = ParserContext.create(); analysisContext.setIndexAllocation(true); MVEL.analysisCompile(expr, analysisContext); Set<String> localNames = analysisContext.getVariables().keySet(); pCtx.addIndexedLocals(localNames); String[] locals = localNames.toArray(new String[localNames.size()]); String[] allVars = new String[varNames.length + locals.length]; System.arraycopy(varNames, 0, allVars, 0, varNames.length); System.arraycopy(locals, 0, allVars, varNames.length, locals.length); return new SimpleVariableSpaceModel(allVars); } }
public static SimpleVariableSpaceModel compile(String expr, ParserContext pCtx) { String[] varNames = pCtx.getIndexedVarNames(); ParserContext analysisContext = ParserContext.create(); analysisContext.setIndexAllocation(true); MVEL.analysisCompile(expr, analysisContext); Set<String> localNames = analysisContext.getVariables().keySet(); pCtx.addIndexedLocals(localNames); String[] locals = localNames.toArray(new String[localNames.size()]); String[] allVars = new String[varNames.length + locals.length]; System.arraycopy(varNames, 0, allVars, 0, varNames.length); System.arraycopy(locals, 0, allVars, varNames.length, locals.length); return new SimpleVariableSpaceModel(allVars); } }
MVEL.analysisCompile( expr, pctx ); } catch (Exception e) {
public void testStaticFieldAccessForInputs() { MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true; ParserContext pCtx = ParserContext.create(); MVEL.analysisCompile("java.math.BigDecimal.TEN", pCtx); assertFalse(pCtx.getInputs().containsKey("java")); assertEquals(0, pCtx.getInputs().size()); // MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true; // // pCtx = ParserContext.create(); // MVEL.analysisCompile("java.math.BigDecimal.TEN", pCtx); // // assertFalse(pCtx.getInputs().containsKey("java")); // // assertEquals(0, // pCtx.getInputs().size()); }
public void testUnwantedImport() { ParserConfiguration conf = new ParserConfiguration(); conf.addPackageImport("java.util"); conf.addPackageImport("org.mvel2.tests.core.res"); ParserContext pctx = new ParserContext( conf ); MVEL.analysisCompile( "ScenarioType.Set.ADD", pctx ); assertNull(conf.getImports().get("Set")); }
public void testStaticFieldAccessForInputsWithStrictStrong() { ParserContext pCtx = ParserContext.create(); pCtx.setStrictTypeEnforcement(true); pCtx.setStrongTyping(true); MVEL.analysisCompile("java.math.BigDecimal.TEN", pCtx); assertFalse(pCtx.getInputs().containsKey("java")); assertEquals(0, pCtx.getInputs().size()); MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true; pCtx = ParserContext.create(); pCtx.setStrictTypeEnforcement(true); pCtx.setStrongTyping(true); MVEL.analysisCompile("java.math.BigDecimal.TEN", pCtx); assertFalse(pCtx.getInputs().containsKey("java")); assertEquals(0, pCtx.getInputs().size()); }
MVEL.analysisCompile(new String(expr, start, cursor - start), pCtx);
MVEL.analysisCompile(new String(expr, start, cursor - start), pCtx);
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 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")); }
public void testVarInputs() { ParserContext pCtx = ParserContext.create(); MVEL.analysisCompile("test != foo && bo.addSomething(trouble) " + "&& 1 + 2 / 3 == 1; String bleh = foo; twa = bleh;", pCtx); assertEquals(4, pCtx.getInputs().size()); assertTrue(pCtx.getInputs().containsKey("test")); assertTrue(pCtx.getInputs().containsKey("foo")); assertTrue(pCtx.getInputs().containsKey("bo")); assertTrue(pCtx.getInputs().containsKey("trouble")); assertEquals(2, pCtx.getVariables().size()); assertTrue(pCtx.getVariables().containsKey("bleh")); assertTrue(pCtx.getVariables().containsKey("twa")); assertEquals(String.class, pCtx.getVarOrInputType("bleh")); }
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)); }