Is Collection.containsAll() an option? --- On Wed, 9/2/09, Wolfgang Laun <[email protected]> wrote:
> From: Wolfgang Laun <[email protected]> > Subject: [rules-users] forall/from/eval/contains: odd DRL syntax error > To: "Rules Users List" <[email protected]> > Date: Wednesday, September 2, 2009, 9:58 AM > A rule has to ascertain that all elements in > a List<ElemBoxStatus>in a > Collector occur in the matching BoxResponse's > Set<ElemBoxStatus>. There is > just one BoxResponse per Collector. > > This here works fine: > > > rule matchCollectorResponse > when > $c : Collector( $ebsList : > elemBoxStatusList, $gsSet : globalStatusSet ) > $b : BoxResponse( collector == $c, > globalStatusSet == $gsSet, $ebsSet : elemBoxStatusSet ) > > forall( $ebs : ElemBoxStatus() from > $ebsList > BoxResponse( collector == > $c, elemBoxStatusSet contains $ebs ) ) > then > ... > end > > Thinking that $ebs is already available from the second > pattern ($b:...), I tried > > > rule matchCollectorResponse > when > $c : Collector( $ms : message, $ebsList : > elemBoxStatusList, $gsSet : globalStatusSet ) > $b : BoxResponse( collector == $c, > globalStatusSet == $gsSet, $ebsSet : elemBoxStatusSet ) > > forall( $ebs : ElemBoxStatus() from > $ebsList > eval( $ebsSet.contains( > $ebs ) ) ) > then > ... > end > > but the compiler came back with > > Line ...:55 no viable alternative at input '$ebs' > in rule matchCollectorResponse in pattern eval > > > Defining a suitable function isIn(...) and using this > within eval() produces the same result. This > and other experiments seems to indicate that bindings in > the first pattern of forall() are not > passed in to an eval() later in the forall. > > > JIRA? > > -W > > > > -----Inline Attachment Follows----- > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
