org.mvel2.MVEL.executeExpression()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(289)

本文整理了Java中org.mvel2.MVEL.executeExpression()方法的一些代码示例,展示了MVEL.executeExpression()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MVEL.executeExpression()方法的具体详情如下:
包路径:org.mvel2.MVEL
类名称:MVEL
方法名:executeExpression

MVEL.executeExpression介绍

[英]Executes a compiled expression.
[中]执行编译后的表达式。

代码示例

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

ParserContext context = new ParserContext();
context.addImport("MVEL", MVEL.class);
context.addImport("MvelHelper", MvelHelper.class);
  exp = MVEL.compileExpression(modifiedRule, context);
  expressionCache.put(rule, exp);
  mvelParameters.put(parameter, ruleParameters.get(parameter));
Object test = MVEL.executeExpression(exp, mvelParameters);
if (test == null) {

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

private static boolean executeTestCase(Serializable exp, String val) {
  final Map multiValueMap = new MultiValueMap();
  multiValueMap.put(val, val);
  final Level2 level2 = new Level2() {
    @Override
    public Map getMultiValueSkuAttributes() {
      return multiValueMap;
    }
  };
  Level1 level1 = new Level1() {
    @Override
    public Level2 getLevel2() {
      return level2;
    }
  };
  Map parameters = new HashMap();
  parameters.put("level1", level1);
  return (Boolean) MVEL.executeExpression(exp, parameters);
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

ParserContext context = new ParserContext();
Serializable domainExp1 = MVEL.compileExpression("result = false; for (cat : currentItem.product.allParentCategories) {if (cat.name == 't-shirt') {result = true;}}; return result and order.subTotal.amount >= 50", context);
Boolean expressionOutcome1 = (Boolean)MVEL.executeExpression(domainExp1, domainVars);
assert expressionOutcome1 != null && expressionOutcome1;
Serializable domainExp2 = MVEL.compileExpression("($ in currentItem.product.allParentCategories if $.name == 't-shirt') != empty and order.subTotal.amount >= 50", context);
Boolean expressionOutcome2 = (Boolean)MVEL.executeExpression(domainExp2, domainVars);
assert expressionOutcome2 != null && expressionOutcome2;

代码示例来源:origin: org.mvel/mvel2

public void testMVEL222() throws IOException {
 String script = "for (int i= 0; i < 10; i++ ){ values[i] = 1.0; }";
 Map<String, Object> scriptVars = new HashMap<String, Object>();
 double[] values = new double[10];
 scriptVars.put("values", values);
 Serializable expression = MVEL.compileExpression(script);
 for (int i = 0; i < 6; i++) {
  scriptVars.put("values", values);
  MVEL.executeExpression(expression, scriptVars);
 }
}

代码示例来源:origin: org.mvel/mvel2

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()));
}

代码示例来源:origin: org.drools/drools-compiler

public Object compiledExecute(final String ex) {
  final Serializable compiled = MVEL.compileExpression( ex );
  return MVEL.executeExpression( compiled,
                  new Object(),
                  new HashMap() );
}

代码示例来源:origin: org.mvel/mvel2

public void testLateResolveOfClass() {
 ParserContext ctx = new ParserContext();
 ctx.addImport(Foo.class);
 ExpressionCompiler compiler = new ExpressionCompiler("System.out.println(new Foo());", ctx);
 System.out.println(executeExpression(compiler.compile()));
}

代码示例来源:origin: org.mvel/mvel2

public void testJIRA103b() {
 MvelContext mvelContext = new MvelContext();
 Map map = new HashMap();
 map.put("ctx",
   mvelContext);
 Serializable c = compileExpression("ctx.regkeys = 'foo'");
 executeExpression(c,
   map);
 executeExpression(c,
   map);
}

代码示例来源:origin: org.drools/drools-compiler

@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);
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

ParserContext context = new ParserContext();
Serializable domainExp1 = MVEL.compileExpression("offer.type.equals(OfferType.FULFILLMENT_GROUP) and (($ in order.fulfillmentGroups if $.type.equals(FulfillmentType.PHYSICAL)) != empty)", context);
Boolean expressionOutcome1 = (Boolean)MVEL.executeExpression(domainExp1, domainVars);
assert expressionOutcome1 != null && expressionOutcome1;

代码示例来源:origin: org.mvel/mvel2

public Object compiledExecute(String ex) {
  Serializable compiled = MVEL.compileExpression(ex);
  Object first = MVEL.executeExpression(compiled, null, map);
  Object second = MVEL.executeExpression(compiled, null, map);

  if (first != null && !first.getClass().isArray())
   assertEquals(first, second);

  return second;
 }
}

代码示例来源:origin: org.mvel/mvel2

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());
}

代码示例来源:origin: org.mvel/mvel2

public void testMath36() {
 String expression = "b/x*z/a+x-b+x-b/z+y";
 Map map = new HashMap();
 map.put("a", 10);
 map.put("b", 20);
 map.put("c", 30);
 map.put("x", 40);
 map.put("y", 50);
 map.put("z", 60);
 Serializable s = compileExpression(expression);
 assertNumEquals(20d / 40d * 60d / 10d + 40d - 20d + 40d - 20d / 60d + 50d, executeExpression(s, map));
}

代码示例来源:origin: org.mvel/mvel2

public void testDeepMethodNameResolution() {
 String expression = "variables = [ \"symbol\" : \"RHT\" ]; \n" +
   "drools.getProcessManager().startProcess(\"id\", variables );";
 // third pass
 ParserContext ctx = new ParserContext();
 ctx.setStrongTyping(true);
 ctx.addInput("drools", KnowledgeRuntimeHelper.class);
 Map vars = new HashMap();
 vars.put("drools", new KnowledgeRuntimeHelper());
 Serializable expr = MVEL.compileExpression(expression, ctx);
 executeExpression(expr, vars);
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

@Test
public void testOfferAppliesToSpecificItems() {
  DiscreteOrderItemImpl orderItem = new DiscreteOrderItemImpl();
  Sku sku = new SkuImpl();
  sku.setRetailPrice(new Money("1"));
  sku.setId(1234L);
  orderItem.setSku(sku);
  OfferImpl offer = new OfferImpl();
  offer.setType(OfferType.ORDER_ITEM);
  //Set up MVEL Context
  ParserContext context = new ParserContext();
  //Import OfferType into the MVEL context since it may be used
  context.addImport("OfferType", OfferType.class);
  context.addImport("FulfillmentType", FulfillmentType.class);
  //Compile the MVEL Expression
  Serializable domainExp1 = MVEL.compileExpression("offer.type == OfferType.ORDER_ITEM and (currentItem.sku.id in [1234, 2345, 5678])", context);
  //Add variables to a HashMap that should be passed in to execute the expression
  HashMap<String, Object> domainVars = new HashMap<>();
  domainVars.put("currentItem", orderItem);
  domainVars.put("offer", offer);
  //Execute the expression
  Boolean expressionOutcome1 = (Boolean)MVEL.executeExpression(domainExp1, domainVars);
  assert expressionOutcome1 != null && expressionOutcome1;
}

代码示例来源:origin: org.mvel/mvel2

public void testMVEL238() throws IOException {
 String expr = new String(loadFromFile(new File("src/test/java/org/mvel2/tests/MVEL238.mvel")));
 Serializable s = MVEL.compileExpression(expr);
 System.out.println(MVEL.executeExpression(s, new HashMap()));
 System.out.println(MVEL.executeExpression(s, new HashMap()));
}

代码示例来源:origin: org.mvel/mvel2

public void testDynamicImportsInList() {
 ParserContext ctx = new ParserContext();
 ctx.addPackageImport("org.mvel2.tests.core.res");
 ExpressionCompiler compiler = new ExpressionCompiler("[ new User('Bobba', 'Feta') ]", ctx);
 List list = (List) executeExpression(compiler.compile());
 User user = (User) list.get(0);
 assertEquals("Bobba",
   user.getFirstName());
}

代码示例来源:origin: org.mvel/mvel2

public void testVirtProperty() {
 Map<String, Object> testMap = new HashMap<String, Object>();
 testMap.put("test", "foo");
 Map<String, Object> vars = new HashMap<String, Object>();
 vars.put("mp", testMap);
 assertEquals("bar", executeExpression(compileExpression("mp.test = 'bar'; mp.test"), vars));
}

代码示例来源:origin: org.mvel/mvel2

public void testMinusOperatorWithoutSpace() {
 String str = "length == $c.length -1";
 ParserConfiguration pconf = new ParserConfiguration();
 ParserContext pctx = new ParserContext(pconf);
 ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression(str, pctx);
 Column col1 = new Column("x", 0);
 Column col2 = new Column("x", 0);
 Map<String, Object> vars = new HashMap<String, Object>();
 vars.put("$c", col2);
 Boolean result = (Boolean) MVEL.executeExpression(stmt, col1, vars);
 assertFalse(result);
}

代码示例来源:origin: org.mvel/mvel2

private void testMVELUntyped(String text) {
  String str = IMPORTS + text;
  ParserContext pctx = new ParserContext();
  Map<String, Object> vars = new HashMap<String, Object>();
  Object o = MVEL.compileExpression(str, pctx);
  MVEL.executeExpression(o, vars);
}

相关文章