[rules-users] Another question on how to use map

Edson Tirelli tirelli at post.com
Wed Jun 24 09:23:42 EDT 2009


    Hi

    As a general advice, try to avoid using abstract data structures (lists,
maps, etc) as facts, since they have no semantics in the problem domain. If
you have students, insert each student in the working memory. If you have
student activities, either have an activities list "as a student attribute",
or create a domain object that relates students to their activity list.

    If you do the above, rules will be so much simpler and more performant,
that you will not regret.

    But, since you asked, I see no reason for you to not insert students
directly, instead of the list of students. Your rule would be like:

when
    $std : Student( $id : id )
    $map : Map(  )
    $act : Activity ($date : date, length >  180) from $map[$id]
then
end

    []s
    Edson

2009/6/24 Brody bach <brodybach at yahoo.com>

>
> Hi,
>
> I need to put a map into the working memory and make some check on the
> values
>
> I have an object called Student with Id
> And for every student there is a list of activity.
> Each activity has date and the time for the activity
> What I will be putting in the working memory looks as follows:
>
> List<Student> studentList = getStudentList();
> Map<Student, List<Activity>> studentActivityMap =
> getStudentActivities(studentList);
> List objects = new ArrayList();
> objects.add(studentList);
> objects.add(studentActivityMap);
>
> ksession.execute(objects);
>
> ====================
>
> Now i need to check for every student, if there is/are activity(ies)  which
> needs more than 2 hours. If yes, give an output information which mention,
> which student and on which day the activity is longer than 2 hours
>
> when
> $studentList : List
> $std : Student($id : id) from $studentList
> $activityList : ****how to get the list of activity for the student with
> this $id from the given map *****
> $act : Activity ($date : date, length >  180) from $activityList
>
> then
> (print something out using $id from std and $date from act)
>
>
> Would really appreciate any help and hints here
>
> Regards
> bb
> --
> View this message in context:
> http://www.nabble.com/Another-question-on-how-to-use-map-tp24181278p24181278.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
>



-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090624/9fc2c335/attachment.html 


More information about the rules-users mailing list