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]>