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

Reply via email to