[rules-users] Rules syntax question using hashmap

Greg Barton greg_barton at yahoo.com
Thu Feb 26 13:03:06 EST 2009


It looks like you want to use null safe bean navigation in mvel 2:

http://mvel.codehaus.org/MVEL+2.0+Property+Navigation

try this:  

$f : Fact(details.?END_MATCH == true, details.?WINNER == "AWAY")

I have no idea if it will work, as the null safe ? example is for accessing bean properties, but it's worth a try.  It's also MVEL 2.0, so will only work with drools 5.

--- On Thu, 2/26/09, Zevenbergen, Alex <azevenbergen at paddypower.com> wrote:

> From: Zevenbergen, Alex <azevenbergen at paddypower.com>
> Subject: RE: [rules-users] Rules syntax question using hashmap
> To: greg_barton at yahoo.com
> Date: Thursday, February 26, 2009, 11:30 AM
> So that doesn't solve the problem of null params in the
> hashmap?
> 
> Do you know if it is possible?
> 
> Also is there a good place for rules documentation and
> examples as all
> the examples I can find are fairly simply and
> one-dimensional
> 
> -----Original Message-----
> From: Greg Barton [mailto:greg_barton at yahoo.com] 
> Sent: 26 February 2009 17:26
> To: Zevenbergen, Alex
> Subject: RE: [rules-users] Rules syntax question using
> hashmap
> 
> Ah.  That's because drools is expecting
> "details" to be an object type.
> Rule conditions take the following form:
> 
> ObjectType(property == value, anotherProperty >
> anotherValue, ...)
> 
> So, for a condition like this...
> 
> details(fact == $f, name == "END_MATCH", value ==
> true)
> 
> ...you would need a class definition like this:
> 
> class details {
>   Fact fact;
>   String name;
>   boolean value;
> }
> 
> And an object of type "details" would need to be
> inserted into working
> memory for the condition to possibly match.
> 
> --- On Thu, 2/26/09, Zevenbergen, Alex
> <azevenbergen at paddypower.com>
> wrote:
> 
> > From: Zevenbergen, Alex
> <azevenbergen at paddypower.com>
> > Subject: RE: [rules-users] Rules syntax question using
> hashmap
> > To: greg_barton at yahoo.com, "Rules Users
> List"
> <rules-users at lists.jboss.org>
> > Date: Thursday, February 26, 2009, 11:14 AM
> > Hi,
> > I get the following error: Unable to resolve
> ObjectType
> > 'details'
> > 
> > I've tried different variations (getDetails etc)
> but
> > 'details is my
> > attribute name and doesn't seem to be picked up!
> > 
> > alex
> > -----Original Message-----
> > From: rules-users-bounces at lists.jboss.org
> > [mailto:rules-users-bounces at lists.jboss.org] On Behalf
> Of
> > Greg Barton
> > Sent: 26 February 2009 17:04
> > To: Rules Users List
> > Subject: Re: [rules-users] Rules syntax question using
> > hashmap
> > 
> > Can you provide any info on why the third option
> > doesn't work?
> > 
> > --- On Thu, 2/26/09, Zevenbergen, Alex
> > <azevenbergen at paddypower.com>
> > wrote:
> > 
> > > From: Zevenbergen, Alex
> > <azevenbergen at paddypower.com>
> > > Subject: [rules-users] Rules syntax question
> using
> > hashmap
> > > To: rules-users at lists.jboss.org
> > > Date: Thursday, February 26, 2009, 10:45 AM
> > > Hi all, 
> > > 
> > >  
> > > 
> > > Im using an object called 'Fact' this
> object
> > has
> > > one attribute that is a
> > > hashmap 'details'
> > > 
> > >  
> > > 
> > > I know there are several ways to access the
> parameters
> > in
> > > the hashmap
> > > 
> > >  
> > > 
> > > $f : Fact()
> > > 
> > > eval
> > ($f.getDetails().get("END_MATCH").toString()
> > > == "true" &&
> > >
> $f.getDetails().get("WINNER").toString() ==
> > > "HOME")
> > > 
> > >     
> > > 
> > > $f : Fact(details.END_MATCH ==
> true,details.WINNER ==
> > > "AWAY")
> > > 
> > >  
> > > 
> > > $f : Fact()
> > > 
> > > details(fact == $f, name ==
> "END_MATCH",
> > value ==
> > > true)
> > > 
> > >  
> > > 
> > >  
> > > 
> > > I was told the third option works but it
> doesn't
> > for
> > > me!
> > > 
> > >  
> > > 
> > > Anyway my question is: Is there anyway for these
> sort
> > of
> > > rules to not
> > > through an exception if any of the named
> parameters
> > > aren't on the
> > > hashmap 'details'?
> > > 
> > >  
> > > 
> > > Ideally the rule would simply not fire if it
> looked
> > for a
> > > key that
> > > wasn't there!
> > > 
> > >  
> > > 
> > > Any info much appreciated
> > > 
> > >  
> > > 
> > > Alex
> > > 
> > >  
> > > 
> > > 
> > >
> >
> ________________________________________________________________________
> > > Privileged, confidential and/or copyright
> information
> > may
> > > be contained in this communication. This e-mail
> and
> > any
> > > files transmitted with it are confidential and
> > intended
> > > solely for the use of the individual or entity to
> whom
> > they
> > > are addressed. If you are not the intended
> addressee,
> > you
> > > may not copy, forward, disclose or otherwise use
> this
> > e-mail
> > > or any part of it in any way whatsoever. To do so
> is
> > > prohibited and may be unlawful. If you have
> received
> > this
> > > email in error 
> > > please notify the sender immediately.
> > > 
> > > Paddy Power PLC may monitor the content of e-mail
> sent
> > and
> > > received for the purpose of ensuring compliance
> with
> > its
> > > policies and procedures.
> > > 
> > > Paddy Power plc, Airton House, Airton Road,
> Tallaght,
> > > Dublin 24  Registered in Ireland: 16956
> > >
> >
> ________________________________________________________________________
> > _______________________________________________
> > > 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
> > 
> >
> ________________________________________________________________________
> > Privileged, confidential and/or copyright information
> may
> > be contained in this communication. This e-mail and
> any
> > files transmitted with it are confidential and
> intended
> > solely for the use of the individual or entity to whom
> they
> > are addressed. If you are not the intended addressee,
> you
> > may not copy, forward, disclose or otherwise use this
> e-mail
> > or any part of it in any way whatsoever. To do so is
> > prohibited and may be unlawful. If you have received
> this
> > email in error 
> > please notify the sender immediately.
> > 
> > Paddy Power PLC may monitor the content of e-mail sent
> and
> > received for the purpose of ensuring compliance with
> its
> > policies and procedures.
> > 
> > Paddy Power plc, Airton House, Airton Road, Tallaght,
> > Dublin 24  Registered in Ireland: 16956
> >
> ________________________________________________________________________
> 
> 
>       
> 
> ________________________________________________________________________
> Privileged, confidential and/or copyright information may
> be contained in this communication. This e-mail and any
> files transmitted with it are confidential and intended
> solely for the use of the individual or entity to whom they
> are addressed. If you are not the intended addressee, you
> may not copy, forward, disclose or otherwise use this e-mail
> or any part of it in any way whatsoever. To do so is
> prohibited and may be unlawful. If you have received this
> email in error 
> please notify the sender immediately.
> 
> Paddy Power PLC may monitor the content of e-mail sent and
> received for the purpose of ensuring compliance with its
> policies and procedures.
> 
> Paddy Power plc, Airton House, Airton Road, Tallaght,
> Dublin 24  Registered in Ireland: 16956
> ________________________________________________________________________


      



More information about the rules-users mailing list