Hi Matt,
how about putting all this information together into a howto document as
a payback to the castor project ;-)
Regards
Ralf
Matt Secoske schrieb:
> Thanks Stephen. I found it:
>
> Changed my mapping file to this:
>
> ...
> <field name="innerData" type="java.lang.Object" handler="MyHandler">
> <bind-xml name="inner" node="element" />
> </field>
> ...
>
>
> and created a customer generalized handler:
> ---------------------------
> import org.exolab.castor.mapping.GeneralizedFieldHandler;
>
> public class MyHandler extends GeneralizedFieldHandler
> {
> public MyHandler() {
> super();
> }
>
> public Object convertUponGet(Object value) {
> if (value == null) return null;
> return value.toString();
> }
>
> public Object convertUponSet(Object value) {
> return value.toString();
> }
>
> public Class getFieldType() {
> return String.class;
> }
>
> public Object newInstance( Object parent )
> throws IllegalStateException
> {
> //-- Since it's marked as a string...just return null,
> //-- it's not needed.
> return null;
> }
>
> }
>
> Thanks for looking at it!
>
>
> On 3/29/06, *Stephen Bash* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> wrote:
>
> Matt-
>
> I haven't used it myself, but I think what you want to look into is
> Castor's AnyNode support. I don't know as there is a lot of
> documentation available, but I think if you search the mail archives
> for AnyNode, you might find some helpful discussions. Sorry I can't
> be of more help.
>
> Stephen
>
>
> On 3/28/06, Matt Secoske <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
> > Hello,
> >
> > I am trying to fit this:
> >
> > <root>
> > <inner attribute="innerAttribute">
> > <data>Inner Data 1</data>
> > <data>Inner Data 2</data>
> > </inner>
> > <outer>Regular String Data</outer>
> > <inner2>
> > <misc>Misc xml to be dealt with later</misc>
> > </inner2>
> > </root>
> >
> > into this:
> >
> > package bizobj;
> >
> > public class Root {
> > String innerData;
> > String outerData;
> > Object innerData2;
> >
> > public String getInnerData() {
> > return innerData;
> > }
> > public void setInnerData(String innerData) {
> > this.innerData = innerData;
> > }
> > public String getOuterData() {
> > return outerData;
> > }
> > public void setOuterData(String outerData) {
> > this.outerData = outerData;
> > }
> > public Object getInnerData2() {
> > return innerData2;
> > }
> > public void setInnerData2(Object innerData2) {
> > this.innerData2 = innerData2;
> > }
> > }
> >
> >
> > ... and the mapping file I am using:
> >
> > <?xml version="1.0"?>
> > <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version
> 1.0//EN"
> >
> > "http://castor.org/mapping.dtd ">
> > <mapping>
> >
> > <class name="bizobj.Root">
> > <field name="innerData" type="string" >
> > <bind-xml name="inner" node="element" />
> > </field>
> >
> > <field name="outerData" type="string">
> > <bind-xml name="outer" node="element" />
> > </field>
> >
> > <field name="innerData2" type="java.lang.Object">
> > <bind-xml name="inner2" node="element" />
> > </field>
> > </class>
> > </mapping>
> >
> >
> > So, innerData2 (java.lang.Object) works just fine, while I cannot
> seem to
> > get innerData (string) to work, regardless of handlers or
> config. Using the
> > innerData2 (Object) approach will not work for various external
> reasons...
> > Any ideas?
> >
> > Regards,
> > --
> > Matt Secoske
>
>
>
>
> --
> Matt Secoske
> http://blog.secosoft.net
--
Syscon Ingenieurbüro für
Meß- und Datentechnik GmbH
Ralf Joachim
Raiffeisenstraße 11
D-72127 Kusterdingen
Germany
Tel. +49 7071 3690 52
Mobil: +49 173 9630135
Fax +49 7071 3690 98
Email: [EMAIL PROTECTED]
Web: www.syscon-world.de
-------------------------------------------------
If you wish to unsubscribe from this list, please
send an empty message to the following address:
[EMAIL PROTECTED]
-------------------------------------------------