If your matcher doesn't equate to a boolean value, I don't think that condition will evaluate as you suspect it will. Functions in your conditions isn't going to be as clean or easy as you suspect. Consider inserting the user-supplied values into your session and matching with a rule:
...
public class Transaction {
private String field;
// ... getter and setter for field, as well as all your other methods in transaction, just showing this to say I'm assuming 'field' to be of type String
}
...
public class Value {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
...
rule "find value substring match"
when
Value ( $v : value )
$t : Transaction( field.contains($v) )
then
sendAlert("Transaction " + $t.getName() + "matches criteria: " + $v);
end
...
session.insert(transaction);
for (int i = 0; i < listOfUserValues.length; i++) {
session.insert(listOfUserValues[i];
}