I'm fairly new to Drools so there may be an easier way to do this. I need to check to see if any one of a list of tags on an object are in another list of tags and am trying to do that with a function. the compiler tells me it can't compile my eval function:
#list any import classes here.
import com.cp.services.rules.sources.Person;
import com.cp.services.rules.actions.PersonActions;
import com.cp.rules.TagCodes;
import java.util.List;
#declare any global variables here
global com.cp.services.rules.actions.PersonActions personActions;
function boolean hasOneOf(List list1, String[] list2){
for (Object obj : list1) {
String string = (String)obj;
for (int j = 0; j < list2.length; j++) {
if (string != null && string.equals(list2[j])) {
return true;
}
}
}
return false;
}
rule "Engineering"
dialect "mvel"
when
#conditions
Person( ageInYears >= 18 ) and
eval ( hasOneOf(Person(tagList), TagCodes(engrTags)) )
then
#actions
personActions.addAction("EngineeringGroup");
end