[rules-users] memberOf mvel list

Wolfgang Laun wolfgang.laun at gmail.com
Mon Feb 22 02:33:49 EST 2010


The original problem seems to be due to not using a *variable* on the
right hand side
of "memberOf", as defined in Drools Expert, subsection 4.8.2.1.1.3.1.,
Operators.
-W

On Sun, Feb 21, 2010 at 11:14 PM, deaddowney <spamcontrol at mac.com> wrote:
>
> 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 at 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at 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-tp325731p325878.html
> Sent from the Drools - User mailing list archive at Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>




More information about the rules-users mailing list