使用MVEL评估针对多图的规则

时间:2012-10-05 13:43:24

标签: multimap mvel

只是想知道如何使用MVEL评估针对多图的规则。

即:

rule-> "foo" == "200"

上下文foo[100, 200, 300]的可能值。

我不知道哪些是可能的值,所以我不能将它们作为规则的一部分包含在内。

理想情况下,我希望能够做到这样的事情:

List<String> valueList = new ArrayList<String>();
valueList.add("100");
valueList.add("200");

List<String> otherList = new ArrayList<String>();
otherList.add("otherValue");

Map<String, List<String>> context = new HashMap<String, List<String>>();
context.put("foo", valueList);
context.put("other", otherList);

MVEL.eval("foo == 200", context)

1 个答案:

答案 0 :(得分:0)

您也可以尝试使用普通的java代码。 我们尝试了这个,它执行得很好。你可以把你的java代码传递给Mvel,它会给你结果。

可以在运行时将函数附加到字符串。只需用你的逻辑创建一个规则/条件。大胆的部分是我们写的。

public Boolean evaluate(Map contextMap){

   **ClassA A = (ClassA) contextMap.get("contextObjectClassA");
    List<ClassB> classb = A.getclassb();
            if(null!=classb  && classb .size()>0){
                    return true;
                }else{
                return false;
            }**
    }