I'm using a map because this is a legacy class that is quite dynamic and can
contain arbitrary tag/values. Ideally, if I knew all the attributes I would
declare them as fields, but I'm stuck with this map at the moment.
Regardless, using your explanation, why does
when
$person : Person(
props[“AGE”] > 20,
(props[“NAME”] =="Fred" ||
props["NAME"]
== "Barney || props["NAME"] == "Wilma"])
)
work?
Corneil du Plessis-2 wrote:
You are expecting map values to be elevated somehow from Object to Integer
and String.
By using typed attributes in the Person class you can overcome your
problem.
Sent from my HTC (Android)
On Feb 21, 2010 9:28 PM, "Adam Krieg" <spamcontrol(a)mac.com> wrote:
I’m new to Drools and having trouble accessing my Domain object which is
basically a container around a map.
class Person {
Map props;
public Map getProps();
…. Extra stuff
}
I want to create a rule that will match when Age is greater than 20 and
name
is one of “Fred”, “Barney”, or “Wilma”. These entries are stored in the
Map props, so that to get age, you would call person.getProps().get(“AGE”)
rule "My Rule"
dialect "mvel"
when
$person : Person(
props[“AGE”] > 20,
props[“NAME”] memberOf [“Fred”,
“Wilma”,
“Barney”]
)
then
System.out.println("found match”+$person);
End
But I am running into a parsing error:
no viable alternative at input ')' in rule "My Rule" in pattern
Person.
The second condition seems to be the problem. Can I check for membership
inside a List I create inline in mvel?
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://n3.nabble.com/Welcome-to-the-rules-users-mailing-list-tp325731p325...
Sent from the Drools - User mailing list archive at
Nabble.com.