Refine search
@Test public void test1() { final ParserContext pc = new ParserContext(); pc.addInput("x", String.class); pc.setStrongTyping(true); final Object o = MVEL.compileExpression("x.startsWith('d')", pc); final Map vars = new HashMap(); vars.put("x", "d"); MVEL.executeExpression(o, vars); System.out.println(o); }
public static Serializable compile(Class<?> inputClass, String inputName, String expr) { ParserContext context = new ParserContext(); context.setStrictTypeEnforcement(true); context.addInput(inputName,inputClass); Serializable compiled = MVEL.compileExpression(expr, context); return compiled; } }
private ParserContext ctxJIRA170(boolean strictTypeEnforcement, boolean strongTyping) { ParserContext ctx = new ParserContext(); // ctx.setStrictTypeEnforcement(strictTypeEnforcement); ctx.setStrongTyping(strongTyping); ctx.addInput("x", Collection.class, new Class[]{Integer.class}); ctx.addInput("y", Integer.class); return ctx; }
public static Serializable compile(Class<?> inputClass, String inputName, String expr) { ParserContext context = new ParserContext(); context.setStrictTypeEnforcement(true); context.addInput(inputName,inputClass); Serializable compiled = MVEL.compileExpression(expr, context); return compiled; } }
public void testAnalyzeTernary() { final ParserContext parserContext = new ParserContext(); parserContext.setStrictTypeEnforcement(true); parserContext.setStrongTyping(true); parserContext.addInput("value", String.class); parserContext.addInput("x", Integer.class); parserContext.addInput("y", Integer.class); parserContext.addInput("z", Integer.class); Class<?> clazz = MVEL.analyze("z = (value == \"ALU\" ? x : y);", parserContext); assertEquals(Integer.class, clazz); }
public static Serializable compile(Class<?> inputClass, String inputName, String expr) { ParserContext context = new ParserContext(); context.setStrictTypeEnforcement(true); context.addInput(inputName,inputClass); Serializable compiled = MVEL.compileExpression(expr, context); return compiled; } }
public void testAnalyzeWrongTernary() { final ParserContext parserContext = new ParserContext(); parserContext.setStrictTypeEnforcement(true); parserContext.setStrongTyping(true); parserContext.addInput("value", String.class); parserContext.addInput("x", Integer.class); parserContext.addInput("y", Integer.class); parserContext.addInput("z", Integer.class); try { Class<?> clazz = MVEL.analyze( "z = (value = \"ALU\" ? x : y);", parserContext ); fail("parse of this expression should raise an error"); } catch (Exception e) { } }
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 testParameterizedTypeInStrictMode3() { ParserContext ctx = new ParserContext(); ctx.setStrongTyping(true); ctx.addInput("base", Base.class); ExpressionCompiler compiler = new ExpressionCompiler("base.list"); // assertTrue(compiler.compile(ctx).getParserContext().getLastTypeParameters()[0].equals(String.class)); }
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 testArrayLength() { ParserContext context = new ParserContext(); context.setStrongTyping(true); context.addInput("x", String[].class); ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression("x.length", context); }
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 testArrayLength() { ParserContext context = new ParserContext(); context.setStrongTyping(true); context.addInput("x", String[].class); ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression("x.length", context); }
public void testEgressType() { ParserContext context = new ParserContext(); context.addInput("$cheese", Cheese.class); ExpressionCompiler compiler = new ExpressionCompiler("( $cheese )", context); assertEquals(Cheese.class, compiler.compile().getKnownEgressType()); }
public void testPrimitiveNumberCoercion() { final ParserContext parserContext = new ParserContext(); parserContext.setStrictTypeEnforcement(true); parserContext.setStrongTyping(true); parserContext.addInput("a", int.class); parserContext.addInput("b", double.class); Class<?> clazz = MVEL.analyze("a > b", parserContext); assertEquals(Boolean.class, clazz); }
public void testMVEL190() { ParserContext context = new ParserContext(); context.addImport(Ship.class); context.addImport(MapObject.class); context.addInput("obj", MapObject.class); Object compiled = MVEL.compileExpression( "((Ship) obj).getName()", context); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("obj", new Ship()); VariableResolverFactory varsResolver = new MapVariableResolverFactory(vars); System.out.println( executeExpression(compiled, varsResolver)); }
public void testGenericsWithOr() { final ParserContext parserContext = new ParserContext(); parserContext.setStrictTypeEnforcement(true); parserContext.setStrongTyping(true); parserContext.addInput("o", OrderLine.class); parserContext.addInput("p", Product.class); Class<?> clazz = MVEL.analyze("p.id == o.product.id || p.category == o.product.category", parserContext); assertEquals(Boolean.class, clazz); }
public void testMVEL187() { ParserContext context = new ParserContext(); context.addPackageImport("test"); context.addInput("outer", Outer.class); Object compiled = MVEL.compileExpression( "outer.getInner().getValue()", context); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("outer", new Outer()); VariableResolverFactory varsResolver = new MapVariableResolverFactory(vars); assertEquals(2, executeExpression(compiled, varsResolver)); }
public void testRegExWithCast() { final ParserContext parserContext = new ParserContext(); parserContext.setStrongTyping(true); parserContext.addInput("this", Foo.class); assertEquals(Boolean.class, MVEL.analyze("(String)bar.name ~= '[a-z].+'", parserContext)); }
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(); }