Edson Tirelli wrote, On 2006-11-10 12:37 AM:

  Hey Geoffrey,

  You guys are doing a great job testing things. Thanks.

  The correct syntax would be like that:

query "multipleMatchesPerTeamPerDay"
   $team : Team()
   Match( $id : id, homeTeam == $team, $day : day ) ||
   Match( $id : id, awayTeam == $team, $day : day )
   exists Match( id > $id, homeTeam == $team, day == $day ) ||
   exists Match(id > $id, awayTeam == $team, day == $day )
end

Although, seems there is a regression as it is raising an error saying variables are being declared twice. Although, when using "||" (or), variables MUST be bound in each logical outcome.

   Do you mind opening a JIRA for that?

I will and I 'll add a testcase patch us usual :)

Still I believe something like
  Match($id : id, homeTeam == $team || awayTeam == $team, $day : day)
should be possible in the long term, because:
- it avoids duplicating the id and day constraints, which makes the rule a lot easier to read - drools could be smart enough to compile that in a way to reuse the beta nodes of id and day maybe? - if it doesn't already Do you mind if I open a second (long-term feature request) JIRA for that too?


   Thank you,

   Regards,
      Edson

Geoffrey De Smet wrote:

I got a simple domain model:

  public class Match {

    private Long id;

    private Team homeTeam;
    private Team awayTeam;

    private Day day;

    // getter, setters, ...
  }

And a rule (query) that checks if a team has 2 matches on the same day (no matter if they are the home or the away team):

  query "multipleMatchesPerTeamPerDay"
    $team : Team();
    Match($id : id, homeTeam == $team || awayTeam == $team, $day : day);
exists Match(id > $id, homeTeam == $team || awayTeam == $team, day == $day);
  end

But apparently I can't do this?

  unknown:12:50 Unexpected token '=='
  unknown:13:39 Unexpected token '$team'
  unknown:13:57 Unexpected token '=='
  unknown:18:33 Unexpected token 'day'

Line 12 is: Match($id : id, homeTeam == $team || awayTeam == $team, $day : day);

Is there any way to avoid having to write a separate rule (query) for every combination (home-home, away-home, home-away, away-away)?

Thanks for any help/advice.




--
With kind regards,
Geoffrey De Smet


---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to