Hi Hugi, a simple – though perhaps not as elegant as you want – solution would be to create your own EO superclass and override init() (from ERXGenericRecord) where you put your logic:
@Override
protected voit init(EOEditingContext ec) {
super.init(ec);
if (this instanceof TimeStamped) {
setCreationDate(new NSTimestamp());
…
}
}
You can configure EOGenerator to use your class instead of EOGenericRecord so
this would be a do it once and forget ;-)
HTH
jw
Am 04.12.2013 um 10:18 schrieb Hugi Thordarson <[email protected]>:
> Hi all.
>
> I’ve been attempting to automate the setting of some common attributes in my
> EOs, like creationDate, createdByUser etc. etc. Usually one might populate
> attributes like that in awakeFromInsertion, but that's boilerplate I’d rather
> not add to my EO classes. So instead, I’ve taken a different route. Simple
> example:
>
> I have an interface TimeStamped, objects that I want stamped with the
> creation date implement this interface. My application then listens for
> EOEditingContext.ObjectsChangedInEditingContextNotification and when it’s
> received, I iterate through inserted objects, check if they implement
> TimeStamped and update their creation dates.
>
> This works fine, apart from a little kink: The
> EOEditingContext.ObjectsChangedInEditingContextNotification is not broadcast
> until WO calls processRecentChanges on the EditingContext—and that happens at
> the *end* of the r/r-loop. This means that if I create an object, assign it
> to a page and return it, WO will happily render the page, and THEN stamp the
> values on the EO (which are thus not shown until the user next refreshes the
> page).
>
> I’m aware I can expedite the broadcasting of the notification by manually
> invoking processRecentChanges before returning the page—but that kind of
> ruins the whole “get this functionality out of my face” aspect of the
> mechanism.
>
> Anyone have any happy litle ideas on how to tackle the problem?
>
> Cheers,
> - hugi
>
> // Hugi Þórðarson
> // Góður kóði
> // 895-6688 / 561-0896
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
