I'm really embarrassed after posting a HowTo on populating a map, but I've
found that it's not as clear as I thought it was. I know how to do it with
the following example:
<?xml version='1.0'?>
<map>
<key name='The key'/>
<value name='The value'/>
</map>
But how to do it with this?
<?xml version='1.0'?>
<map>
<key name='KeyA'/>
<value name='ValueA'/>
<key name='KeyB'/>
<value name='ValueB'/>
</map>
CallMethodRule is only invoked at the end of <map>, so you can't call it
twice, once for each key, value pair.
The situation I have that I actually need to solve looks more like this:
<Library>
<Book title="The Firm" />
<Book title="The Cat in the Hat" />
</Library>
I would want Library to be a HashMap with titles for keys and Book objects
for values. You can't use a CallMethodRule on Book because the put() method
belongs to Library, not Book.
Help?
BTW, I realize you can do this by creating proxy objects that call put() for
you. That's inelegant IMHO and I was hoping that Digester 1.4 had solved
this issue.
K.C.