Eitan,

Thanks a bunch! 

I'll get this checked into the CVS. I'll also add a quick comment about
the create-method is currently limited to containing class.


--Keith

Eitan Suez wrote:
> 
> i noticed that the "XML/JDO Create Method" section of "tips & tricks" has
> not yet been written.  here is a stab at providing some of that
> documentation
> for inclusion in the next release:
> 
>     <section title="XML/JDO: Create method">
> 
>     <p>
>     Castor requires that classes have a public, no-argument constructor in
> order
>     to provide the ability marshal &amp; unmarshal objects of that type.
>     </p>
> 
>     <p>
>     create-method is an optional attribute to the &lt;field&gt; mapping
> element that
>     can be used to overcome this restriction in cases where you have an
> existing
>     object model that constists of, say, singleton classes, where public,
> no-argument
>     constructors must not be present by definition.
>     </p>
> 
>     <p>
>     Assume for example that a class "A" that you want to be able to
> unmarshal uses
>     a singleton class as one of its properties.  When attempting to
> unmarshal class
>     "A", you should get an exception, because the singleton property has no
> public
>     constructor.  Assume a reference to the singleton can be obtained via a
> static
>     getInstance() method, you can add a "create method" to class A like so:
>     </p>
> 
>     <code>
>      <![CDATA[
>     public MySingleton getSingletonProperty()
>     {
>       return MySingleton.getInstance();
>     }
>      ]]>
>     </code>
> 
>     <p>
>     and in the mapping file for class A, you can define the singleton
> property
>     like so:
>     </p>
> 
>     <code>
> 
>      <![CDATA[
>     <field name="mySingletonProperty"
>            type="com.u2d.MySingleton"
>            create-method="getSingletonProperty">
>       <bind-xml name="my-singleton-property" node="element" />
>     </field>
>      ]]>
>     </code>
> 
>     <p>
>      This illustrates how the create-method attribute is quite a useful
>      mechanism for dealing with exception situations where you might
>      want to take advantage of marshaling even when some classes do not
>      have no-argument public constructors.
>     </p>
> 
>     </section>
> 
> i have a little bandwidth at the moment.  i would like to volunteer to
> add documentation for aspects of castor that anyone believes is only
> available on the mailing list archives.  feel free to point me to archive
> messages and i will try to compile documentation on these features.
> 
> Thanks, Eitan
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to