I want to my Drool generic one.
This is my Java class structure:
public class RulesModel {
private String field;
private List<Object> values;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public List<Object> getValues() {
return values;
}
public void setValues(List<Object> values) {
this.values = values;
}
}
And I want my rule like below:
rule "sample"
when
$rule : RulesModel( field == "source", value == "facebook", value == "youtube", value != "instagram" )
then
// actions
end
How to validate list objects in Drools?
What you are looking for are the contains
and not contains
operators:
(Assuming that your RuleModel
contains Strings
as values)
rule "sample"
when
$rule : RulesModel( field == "source", values contains "facebook", values contains "youtube", value not contains "instagram" )
then
// actions
end
You can get more information about Drools' supported operators here: https://docs.jboss.org/drools/release/7.37.0.Final/drools-docs/html_single/index.html#drl-operators-ref_drl-rules
Hope it helps,