В DROOLS, если мы смотрим, находится ли значение «foo» в списке {fu, fa, fe, fi, fo, foo, fum, doodle, dee}, когда MVEL анализирует это в DRL, мы получаем что-то вроде это:
if("foo" == "fu" || "foo" == "fa" || "foo" == "fe" || ...)
Это нормально, пока список относительно небольшой, но нам нужно увидеть, находится ли предоставленный zipCode в списке zipCode, поэтому нам нужно создать что-то вроде этого:
Установите zipCodes = getAllZipCodesInNHNYandHalfOfCA() [Итак, вы знаете, что в США около 40 тысяч почтовых индексов]
if(zipCodes.contains(customer.getZipCode()){ ... правило оценивается как истинное }
Я ищу, как научить DROOLS делать это сравнение так, как нам нужно, а не так, как оно у нас сейчас.
Мысли, комментарии, предложения?
Спасибо,
Джейсон