Hi Tim,
You shouldn't need to map ArrayList as it has a built-in mapping, so you should be able to do the following:
Unmarshaller unm = new Unmarshaller(ArrayList.class); ArrayList list = (ArrayList) unm.unmarshal(reader);
If you want to override the built in mapping then you can try to specify the "iterator()" method as the get method.
--Keith
Tim Mulle wrote:
We have a generic Castor loader class that we want to load objects from
XML files given the class type and the mapping file.
We have a very simple xml file that we want an ArrayList to be populated
from.
XML FILE:
<security-servers> <server>Server 1</server> <server>Server 2</server> </security-servers>
We tried to simply map the arraylist as a class
<?xml version="1.0"?> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version 1.0//EN" "http://castor.exolab.org/mapping.dtd"> <mapping> <description>Mapping file ArrayList</description> <class name="java.util.ArrayList" verify-constructable="false">
<!-- No name, since the field in the ArrayList class is private --> <field name="" type="java.lang.Object" set-method="add" get-method="get"> <bind-xml node="element" location="security-servers/server"/> </field> </class> </mapping>
The problem we are running into is that there is no get() method, only
get(index) on ArrayList...
Can we even map an arraylist as a standalone class?
// Example usage List servers = (List)CastorLoader.load(ArrayList.class, "ArrayListMap.xml");
Thanks, - Tim
------------------------------------------------------------------------
----------------------------------------------------------- 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
