Are you just performing validation or are you modifying the data as well?
If it is purely validation then I believe you can get away purely with 
inserting the root element - it's not at all efficient if you update any of the 
data (pretty much every rule would have to refire) but if you aren't updating 
the data then that doesn't matter - against that it may result in neater rules 
if you do put all the objects in the memory.

Thomas

> -----Original Message-----
> From: rules-users-boun...@lists.jboss.org [mailto:rules-users-
> boun...@lists.jboss.org] On Behalf Of Chris Selwyn
> Sent: 28 November 2010 11:39
> To: Drools users
> Subject: [rules-users] What should I insert into the working memory?
>
> I am working on a project that is using Drools to perform validation of
> hierarchical XML messages.
>
> So I have passed the XSDs through JAXB and have a set of interrelated
> Java objects.
> One of these objects (naturally) represents the root of the messages and
> the others represent the intermediate and leaf nodes of the message.
>
> My question is: Should I traverse the tree and insert each object into
> the working memory or should I just insert the root object into the
> working memory?
>
> If I insert each object into the memory then I have a lot of flexibility
> about how I write my rules... I can start by focussing on the particular
> part of the message that I want to detect an error in.
> However, I then have to perform a whole bunch of "joining" clauses to
> correctly "connect up" to the other objects in the working memory.
> (This is how I am doing it at the moment... I have a mechanism that uses
> the Java Introspector. It identifies by package name which parts of the
> data model get inserted into the WM)
>
> On the other hand, I could just insert the root object into the WM. This
> means that I would have to write really complicated where clauses on the
> root object but very much simplifies the WM loading process.
>
> All of the examples that I have seen have a very simple flat
> (non-hierarchical) structure that don't really give a hint as to what a
> "best practice" might be.
>
> Any suggestions/insights welcome :-)
>
> Chris Selwyn
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users


**************************************************************************************
This message is confidential and intended only for the addressee. If you have 
received this message in error, please immediately notify the 
postmas...@nds.com and delete it from your system as well as any copies. The 
content of e-mails as well as traffic data may be monitored by NDS for 
employment and security purposes. To protect the environment please do not 
print this e-mail unless necessary.

NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, 
United Kingdom. A company registered in England and Wales. Registered no. 
3080780. VAT no. GB 603 8808 40-00
**************************************************************************************

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to