Правит слюни для проверки коллекции с ограничением составного значения - PullRequest
3 голосов
/ 03 января 2011

Я хочу проверить, содержит ли коллекция не три элемента.В Java я бы сделал

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

Как я могу сделать это со слюнями?Я искал два часа и пытался что-нибудь, но не мог найти решение этой «простой» проблемы.Я нашел «Ограничение составных значений», которое мне точно нужно, но оно не работает для коллекций и оператора «содержит».

Буду признателен за ваши ответы.*

Ответы [ 2 ]

2 голосов
/ 04 января 2011

Это делает то, что делает код Java:

Collection( this not contains "s1" ||
            this not contains "s2" ||
            this not contains "s3")
0 голосов
/ 04 января 2011

Я думаю, вы можете взять диалект правила "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"));

}

Надеюсь, что эта помощь.Спасибо.

...