The question in my mind is still: what use cases require the CallMethodRule to fire when the params are available?
Ok I remember why I needed this feature. I wanted to parse a file of i18n labels and insert them in a database. The file looked like this :
<messages> <message key="global.cancel"> <label lang="en">Cancel</label> <label lang="fr">Annuler</label> </message> <message key="global.apply"> <label lang="en">Apply</label> <label lang="fr">Appliquer</label> </message> </messages>
I first pushed a "MessageFactory" on the stack with the following interface :
interface MessageFactory { void setKey(String key); void addLabel(String lang, String label); }
and the parsing rules were :
- call setKey() on messages/message using the key attribute
- call addLabel() on messages/message/lang. This method issued the INSERT in the database, using the key previously specified.
I was then surprised to find in my database :
global.cancel=Apply
That's how I discovered that the call to setKey() was issued after the call to addLabel().
I admit I could have done it differently, but that illustrates the case of a rule fired on a child element depending on a context parameter set by a rule fired at the beginning of the parent element.
Emmanuel Bourg
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]