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

Reply via email to