Sorry for the bad formatting, corrected inline.
Hi Simon,
There are some cases where you know the objects being present on the
Digester's stack. In this case, you would like to be able to access
them directly so that you can call their methods and pass them
parameters that are present in the xml attributes.
With further refinement, you would also like to pass to them parameters
that are objects that are already present on the stack. Then once, the
call return, you would like to push (or not) the result on the stack.
This is what the CallFactoryMethodRule does.
It is a digester rule that enables to define the caller of the method,
the name of the method and its parameters. The the result of the call
can be pushed on the stack.
The following is an excerpt of a xml digester usage of the rule:
<pattern value="employee">
<call-factory-method-rule
methodname="createEmployee"
paramtypes="string,string"
paramnames="firstName,lastName" pushit="true"/>
<set-next-rule methodname="setModel"/>
<pattern value="address">
<call-factory-method-rule
methodname="createAddress"
caller="root"
paramtypes="string,string,string,string"
paramnames="street,city,state,zipCode"
pushit="true"/>
<call-factory-method-rule
methodname="setType"
paramtypes="string"
paramnames="type"/>
<set-next-rule methodname="addAddress"/>
</pattern>
</pattern>
There is a more detailled presentation of this in the header of class
CallFactoryMethodRule.
Regards,
Gilles
http://issues.apache.org/bugzilla/show_bug.cgi?id=20903
Hi Gilles,
Sorry it took so long to get around to having a look at this bugzilla
entry.
A lot of work has clearly gone into the attached code. However I
don't really
understand what the purpose of it is...and send a summary of what
this code
achieves, so that we can all discuss this patch? ..
I am concerned about the significant complexity of the code (as will
other
digester maintainers), and so would like to understand what benefits
users would
gain by having this CallFactoryMethodRule available....
Thanks for your offer of this code, and hope to see your email soon.
Regards,
Simon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]