type="other" ?
try using the actual type, like:
type="com.acme.Foo"
-or-
type="java.lang.Object"
--Keith
"Grzemowski, Michal" wrote:
>
> Hi,
>
> I am trying to map a field being an object of a very specific class (enum wrapper)
> by using my own handler. I am getting a strange exception all the time. As usual -
> please heeeeelp ;-)
>
> Here is the mapping:
> <field name="cnxflag" type="other" direct="true" handler="EnumHandler"
> verify-constructable="false">
> <bind-xml name="cnxflag" node="element"/>
> </field>
>
> I am getting an exception upon execution of:
> ...
> Mapping mapping = new Mapping();
> mapping.loadMapping("castorMapping.xml");
> ...
> //create marshaller
> Marshaller marshaller = new Marshaller(writer);
> marshaller.setMapping(mapping); // <- here
>
> The exception looks like this:
>
> toString: org.exolab.castor.mapping.MappingException: Nested error:
> org.exolab.castor.mapping.MappingException: The field public FSE_SVC.ConnectionFlag
> FSE_SVC.AvlSolution1.cnxflag is not of the specified type [C
> Stack trace:
> org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:294)
> org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:246)
> org.exolab.castor.xml.Marshaller.setMapping(Marshaller.java:523)
> castorTest.testAvlSolution1(castorTest.java:59)
> castorTest.main(castorTest.java:27)
>
> By the way - when I was using the O2XMapper, I noticed that it was handling char[]
> and char[][] incorrectly, setting the type attribute to "[C" and "[[C" respectivly.
> This looks similar, so maybe this is the problem?
>
> I tried to debug CASTOR, but without knowing the idea of its operation I got
> nowhere...
>
> The class of the field being the problem looks like this:
> public class ConnectionFlag implements org.omg.CORBA.portable.IDLEntity
> {
> private int __value;
> private static int __size = 4;
> private static FSE_SVC.ConnectionFlag[] __array = new FSE_SVC.ConnectionFlag
> [__size];
>
> public static final int _NeedsNoConnection = 0;
> public static final FSE_SVC.ConnectionFlag NeedsNoConnection = new
> FSE_SVC.ConnectionFlag(_NeedsNoConnection);
> public static final int _NeedsConnection = 1;
> public static final FSE_SVC.ConnectionFlag NeedsConnection = new
> FSE_SVC.ConnectionFlag(_NeedsConnection);
> public static final int _NeedsOriginConnection = 2;
> public static final FSE_SVC.ConnectionFlag NeedsOriginConnection = new
> FSE_SVC.ConnectionFlag(_NeedsOriginConnection);
> public static final int _NeedsDestinationConnection = 3;
> public static final FSE_SVC.ConnectionFlag NeedsDestinationConnection = new
> FSE_SVC.ConnectionFlag(_NeedsDestinationConnection);
>
> public int value ()
> {
> return __value;
> }
>
> public static FSE_SVC.ConnectionFlag from_int (int value)
> {
> if (value >= 0 && value < __size)
> return __array[value];
> else
> throw new org.omg.CORBA.BAD_PARAM ();
> }
>
> protected ConnectionFlag (int value)
> {
> __value = value;
> __array[__value] = this;
> }
> } // class ConnectionFlag
>
> Thanks,
>
> Michal Grzemowski
>
> ------------------------------------------------------------------------
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-user
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user