Re: [suggestion] unmodifiable toMany lists

From: Dirk Olmes (dir..anthippe.ping.de)
Date: Tue Nov 10 2009 - 03:57:19 EST

  • Next message: Aristedes Maniatis: "tests against other databases"

    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