2011-01-03 8 views
3

コレクションにではなく、という3つの要素が含まれているかどうかをチェックしたいと思います。 Javaで私はやるだろうDroolsルールで複合値の制限を持つコレクションを確認する

!(collection.contains("s1") && collection.contains("s2") && collection.contains("s3")) 

私はどのようにこれをdroolsで行うことができますか?私は2時間捜して何か試しましたが、この「単純な」問題の解決策を見つけることはできません。私は正確に必要な "複合値の制限"を見つけましたが、コレクションと "contains"演算子では機能しません。

私はあなたの答えに感謝します。

ナタナエル

答えて

2

Javaコードが何をするかこれはない:

Collection(this not contains "s1" || 
      this not contains "s2" || 
      this not contains "s3") 
+0

ありがとう、私は木々を通って森を逃していました! – Nathanael

0

私が思うに、あなたはルール方言の "Java" を取ることができます。
次のサンプルがお手伝いします。

global java.util.ArrayList responseList 

rule "checkCollectionRule" 
    dialect "java" 
    salience -1 

    when 

     eval(ifContains(responseList, val1, val2.....)) 

    then 

     responseList.add(new Boolean("true")); 

end 


function Boolean ifContains(List responseList, String val1, String val2,....) { 
    return (responseList.contains("s1") && responseList.contains("s2") && responseList.contains("s3")); 

} 

このヘルプが必要です。おかげさまで

関連する問題