thanks for the unit tests. it turned out to be to do with recognition of recursive elements rather than anything to do with the NameMapper implementations so i might have had difficulties replicate it otherwise.
- robert
On Sunday, December 15, 2002, at 11:13 PM, Tim Anderson wrote:
Go for it. I didn't include the license out of laziness ;)-----Original Message----- From: robert burrell donkin [mailto:[EMAIL PROTECTED]] Sent: Monday, December 16, 2002 3:34 AM To: Jakarta Commons Developers List Subject: Re: [betwixt][BUG?] Destreaming custom collections using Hyphenated/DecapitalizeNameMapper?thanks. those unit tests demonstrate the problem fine. fancy donating them to the apache software foundation (saves me writing equivalent ones)? (you didn't include the apache license at the top of each so i thought it best to check...) - robert On Saturday, December 14, 2002, at 10:31 AM, Tim Anderson wrote:Attached is a junit test case which reproduces the problem. Regards, Tim-----Original Message----- From: Tim Anderson [mailto:[EMAIL PROTECTED]] Sent: Saturday, December 14, 2002 7:50 PM To: [EMAIL PROTECTED] Subject: [betwixt][BUG?] Destreaming custom collections using Hyphenated/DecapitalizeNameMapper? Hi people, I am trying to destream some XML using betwixt into aclass structurewhich looks like: public class Foos { // manages a collection of Foo public void addFoo(Foo foo) { ... } public Iterator getFoos() { .... } } public class Foo { // ... public void setValue(String value) { ... } public String getValue() { ...} } Using the DefaultNameMapper, this streams as: <Foos> <foo value="a"/> <foo value="b"/> </Foos> and destreams fine. However with theHyphenated/DecapitalizeNameMappers,it doesn't destream correctly - the addFoo() method is not invoked.
Streamed it looks like:
<foos>
<foo value="a"/>
<foo value="b"/>
</foos>
Looking at the debug trace, the following messages from XMLIntrospector
appear:
....
Processing child
ElementDescriptor[qname=foos,pname=foos,class=interfacejava.util.Iterator,singular=class Foo,updater=MethodUpdater [method=public void Foos.addFoo(Foo)]] Creating generic rule for recursive elements ^^^^^^^^^^^^ problem starts here^^^^^^^^^^^^ Created bean create rule Descriptor=ElementDescriptor[qname=foos,pname=foos,class=interface java.util.Iterator,singular=class Foo,updater=MethodUpdater [method=public void Foos.addFoo(org.apache.commons.sql.type.Foo)]] Class=class Foo Path prefix=*/foos Ignoring duplicate digester rule for path: */foos rule: BeanCreateRule [path prefix=*/foos descriptor=ElementDescriptor[qname=foos,pname=foos,class=interface java.util.Iterator, .... I'm configuring the introspector using: introspector.setAttributesForPrimitives(true); introspector.setWrapCollectionsInElement(false); introspector.setElementNameMapper(newDecapitalizeNameMapper());Any ideas/workarounds? Thanks, Tim -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>-- To unsubscribe, e-mail:<mailto:[EMAIL PROTECTED].org> For additional commands, e-mail:<mailto:[EMAIL PROTECTED].org>-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]. org> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]. org>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
