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 a class structure
> which 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 the Hyphenated/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=interface
> java.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(new DecapitalizeNameMapper());
>
> Any ideas/workarounds?
>
> Thanks,
>
> Tim
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>

Attachment: Element.java
Description: JavaScript source

Attachment: Elements.java
Description: JavaScript source

Attachment: TestElementsIO.java
Description: JavaScript source

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to