Hi Naresh,
I tend to prefer the first approach. And the Java APIs can make it
fairly easy:
Eg:
public List getBooks () {
return books;
}
public Book[] getBookArray () {
return (Book[])gooks.toArray(new Book[0]);
}
I'd also add that many of these will get much easier once Java adds
support for real Generics.
On Tue, 2003-02-18 at 11:11, Naresh Bhatia wrote:
> Hi,
>
> I am trying to find the best practices around serializing /
> deserializing Lists and Maps. So far I have come up with the following
> approaches. Please feel free to give me your comments as well as list
> other approaches that you may have found useful. My overall assumption
> is that it is heck of a lot easier to work with Lists and Maps inside
> a Java application rather than arrays, which is the preferred way for
> SOAP!
>
> 1) Maintain separate internal data structures for Java and external
> data structures for SOAP. Translate between the two as needed. For
> example:
>
> public Book {
> private String isdn; // key
> ...
> }
>
> public BookStoreInternal {
> private HashMap books; // key is isdn, value is Book
> ...
> }
>
> public BookStoreSoap {
> private Book[] books;
> ...
> }
>
> Advantages: Interoperable with other SOAP toolkits
> Disadvantages: Ugly to maintain two sets of data structures and
> conversion routines
>
> 2) Keep just one set of data structures, use Lists and Maps as needed.
> Write custom serializers and deserializers to translates the lists and
> maps to SOAP arrays and vice versa.
>
> Advantages: Interoperable with other SOAP toolkits
> Disadvantages: Ugly to maintain custom serializers and
> deserializers
>
> 3) Use the Axis framework to serialize / deserialize Lists and Maps
>
> Advantages: No maintenance
> Disadvantages: Not interoperable with other toolkits (I know Maps
> don't work with .NET)
>
> What would be ideal is if I can use Lists and Maps as I feel like and
> Axis would automatically translate them to / from SOAP arrays. I don't
> mind giving hints to Axis about object types / keys - but this
> approach would be far more easier to implement and maintain that any
> of the three mentioned above. Comments?
>
> Thanks.
> Naresh
--
=======================================
Jess Sightler
Senior Developer
Exim Technologies
131 Falls Street
Greenville SC 29601
Phone: 864-679-4651
=======================================