Lachlan Deck wrote:
> Hi there,
>
> given some stuff we've seen in our own code (and general better
> practices for dealing with collections in general) I thought I'd suggest
> the following changes for the default cayenne entity templates:
> - private ivars rather than protected (if they're not already)
>
> - return Collections.unmodifiableList(foo) rather than returning the
> actual list that's modified via addTo/removeFrom etc.
>
> Thoughts? Philosophies?
There's actually two schools of thoughts here:
- lock down access to the collections as you propose. However, given
that you cannot detect if a Collection is immutable or not (thanks to
Collections' broken interface design, think of NSArray vs
NSMutableArray) this is only a weak workaround.
- implement custom collections that are ObjEntity aware and "do the
right thing" when touched.
I haven't looked at the Cayenne source for quite some time now but IIRC
the code currently does the second option above ...
-dirk
This archive was generated by hypermail 2.0.0 : Tue Nov 10 2009 - 04:05:56 EST