• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to selectively save EO
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to selectively save EO


  • Subject: Re: How to selectively save EO
  • From: Paul Suh <email@hidden>
  • Date: Fri, 21 Apr 2006 20:56:35 -0400

Ondra,

This is a situation that cries out for nested and peer editing contexts. Each Volume should have its own peer EC. Each Page then has an EC whose object store is the Volume's EC. Remember that different EC's can each have their own copy of the same EO, each of which has the same EOGlobalID and refers to the same database, but which are different instances. You always build relationships between EO's within the same EC, such as connecting up an Ad to a ColorSpace. If the objects are in different EC's then use EOUtilities.localInstanceOfObject() to get an instance of the EO that is in the right EC. Be careful in your EOModel design so that you have accounted for all of the places where you really need a many-to- many relationship. When a user saves a Page object, the Page's EC flushes changes to its parent, the Volume's EC. When the user is satisfied with the entire Volume, he or she hits save and the Volume's EC flushes to the database.

I hope I'm making this clearer for you, not murkier.


--Paul


Paul Suh http://www.ps-enable.com/
email@hidden (301) 643-1516




On Apr 21, 2006, at 3:53 PM, Ondra Cada wrote:

Paul,

On 21.4.2006, at 21:22, Paul Suh wrote:

You should probably go back and re-think your design, so that you are no longer trying to save the single EO -- instead, your natural flow will be to save the entire state of the object graph tracked by the EC.

My archetypal wanna-save-part-of-graph situation is a simulated document-like environment.


For example, one of my projects allows the user to edit a number of "volumes" (they contain "pages", and the user places "ads" and "articles" to the "pages"). All the information is stored in one central database, and there are relationships which intertwine all the objects into a network without clean-cut bounds (for example, all "pages" and also "ads" link to the same list of "colour spaces"; the "user" who can edit different parts of the network has its own entity, too, and there are relationships between "users" and objects of all kinds they are editing, and so forth).

Now, the user assumes that (a) he can open more "volumes" at once, (b) he can save changes made inside each of them independent on the others.

Possibly I am overlooking something very obvious, but I do not see a general, clean, and easy solution: either I use one EC, in which case I cannot save separately (without some real hackery :)), or I use more EC's, but then there are relationships which cross the EC boundaries. Also, I do not see (perhaps just caused by my blindness of course!) any obvious design error in the above.
---
Ondra Čada
OCSoftware: email@hidden http://www.ocs.cz
private email@hidden http://www.ocs.cz/oc




_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Re: How to selectively save EO (From: Paul Suh <email@hidden>)
 >Re: How to selectively save EO (From: Ondra Cada <email@hidden>)

  • Prev by Date: Re: WOHyperlink and bindings
  • Next by Date: Re: How to selectively save EO
  • Previous by thread: Re: How to selectively save EO
  • Next by thread: Re: How to selectively save EO
  • Index(es):
    • Date
    • Thread