If you look back through the list archive, I posted a patch several months ago for castor that would generate source for j2 which allowed public use of the j2 collections rather than an array.
Regards, Glenn Farrukh Najmi wrote: > > Keith, > > My confusion was because the public API that was generated did not have anything to >do with > Java 2 Collections API. Only the private implementation did. As a user of castor it >is the > public API of the generated code that is relevant to me. To further add to the >confusion was > that the documentation at: > > http://castor.exolab.org/sourcegen.html#Collection-Types > > said the command line option was "types -j2" instead of "-types j2". I was using the >latter > which is correct but was wondering whether I was using the right options as the >generated code > did not seem to be exposing Java 2 Collections API. > > Thanks again for building a very good toolkit and a robust community around it. > > -- > Regards, > Farrukh > > Keith Visco wrote: > > > Farrukh Najmi wrote: > > > > > > I generated Java Source for my schema using SourceGenerator with the > > > "-types j2" command line option. The resulting code indeed used > > > java.util.ArrayList instead java.util.Vector. However, that was a > > > private data memeber. The public API that was generated still uses: > > > > > > -Enumeration instead of Iterator > > > > > > /** > > > **/ > > > public java.util.Enumeration enumerateObjectRefListItem() > > > { > > > return new > > > org.exolab.castor.util.IteratorEnumeration(_items.iterator()); > > > } //-- java.util.Enumeration enumerateObjectRefListItem() > > > > > > Instead of > > > > > > public java.util.Iterator iteratorForObjectRefListItem() { > > > return _items.iterator(); > > > } > > > > This one needs to be fixed in the CVS... > > > > > > > > -Provides a get method that return an Java Array '[]' instead of an > > > ArrayList > > > > This one can be added...but as an option...Even in Java 1.0 collections > > we do not expose the actual collection to the user, but rather hide the > > implementation of the collection by returning only arrays. > > > > Perhaps we can add castorbuilder.properties flag for this. > > > > > > > > /** > > > **/ > > > public org.oasis.ebxml.registry.bindings.rim.ObjectRefListItem[] > > > getObjectRefListItem() > > > { > > > int size = _items.size(); > > > org.oasis.ebxml.registry.bindings.rim.ObjectRefListItem[] mArray > > > = new org.oasis.ebxml.registry.bindings.rim.ObjectRefListItem[size]; > > > for (int index = 0; index < size; index++) { > > > mArray[index] = (ObjectRefListItem) _items.get(index); > > > } > > > return mArray; > > > } //-- org.oasis.ebxml.registry.bindings.rim.ObjectRefListItem[] > > > getObjectRefListItem() > > > > > > Instead of: > > > > > > public ArrayList getObjectRefListItem() { > > > return (ArrayList)_items.clone(); > > > } > > > > > > I am quite confused by this unexpected behaviour. > > > > Are you really that confused by it? It's simple abstraction. Hiding the > > implementation details from the user. I'm glad that you at least used > > "clone" in your example to prevent the actual array list from being > > modified. > > > > > Am I using Castor XML Source Generator incorrectly or are these issues bugs in >the latest > > > version? > > > > One bug, one possible missing feature. > > > > --Keith > > > > ----------------------------------------------------------- > > If you wish to unsubscribe from this mailing, send mail to > > [EMAIL PROTECTED] with a subject of: > > unsubscribe castor-dev > > ----------------------------------------------------------- > If you wish to unsubscribe from this mailing, send mail to > [EMAIL PROTECTED] with a subject of: > unsubscribe castor-dev -- ---------------------------------------------------------------------- Glenn Nielsen [EMAIL PROTECTED] | /* Spelin donut madder | MOREnet System Programming | * if iz ina coment. | Missouri Research and Education Network | */ | ---------------------------------------------------------------------- ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev
