commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert burrell donkin <robertdon...@mac.com>
Subject Re: [Digester] How can Digester create objects whose class is defined in the XML?
Date Mon, 04 Mar 2002 18:53:23 GMT
hi martin

On Sunday, March 3, 2002, at 07:41 AM, Martin Cooper wrote:

> I need to be able to specify the class to be instantiated for an element
> from an attribute on its parent element. For example, I need to have
> Digester handle the following:
>
>   <action-mappings type="com.foo.bar.MyClass">
>     <action ... />
>     <action ... />
>   </action-mappings>
>
> Here, each ObjectCreate for an <action> element needs to create an object 
> of
> the class specified by the 'type' attribute of the <action-mappings>
> element. After the object has been created, its own attributes would be
> populated using addSetProperties(). There is no object created for the
> <action-mappings> element.
>
> I have a feeling that this is going to involve a FactoryCreateRule of some
> sort. However, I haven't quite got my head around this type of rule yet to
> figure this out.
>
> Ideas, anyone?

there are at least two ways to be this kind of thing.

probably the easiest is something like

digester.addFactoryCreate("root/action", DefaultObject.class, "type")

(an instance of class DefualtObject will be created whenever the attribute 
isn't present).

- robert


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message