Greg Zoller [http://community.jboss.org/people/gwzoller] created the discussion

"Newbie Drools Rule-Writing Question"

To view the discussion, visit: http://community.jboss.org/message/538052#538052

--------------------------------------------------------------
Hello,

I'm trying to write a drools rule for the following situation:

I have a user profile object containing a list of Strings representing the 
roles this user has been granted.
I need a drools rule pattern that matches true if there is an intersection 
between the user's roles and a list of given roles.
In Java the rule logic would be:

     ArrayList<String> okRoles = new ArrayList<String>();
     okRoles.add("Internal");
     okRoles.add("Admin");
     Profile profile = // get profile from wherever...contains list of user's 
roles: {"User","Internal"}
     if( okRoles.retainAll( profile.getRoles() ) == false ) {
          // successful match
     }

How can I do similar match logic in Drools?  Here's where I'm at so far:

rule "Test1"
    when
        Profile(roles in ("Internal","Admin"))
    then
        System.out.println("Found role match!");
end

This rule actually runs w/o crashing, but fails to match...presumably because 
getRoles() returns a list of roles and the list is not in ("ROLE_BUYER").

Any hints how I can accomplish this?

Thanks!
Greg

--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/538052#538052]

Start a new discussion in Beginner's Corner at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2075]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to