From ddd34c201a1ee53c7c3be4e1f2d3013d8f0ff351 Mon Sep 17 00:00:00 2001 From: Paul Hoadley Date: Thu, 7 Aug 2014 16:33:33 +0930 Subject: [PATCH] Adds ERXPartial.init(). #602 Here we add an init() method which subclasses (that is, partial entities) can override. We also implement init() in ERXPartialGenericRecord, and have it call init() on all the partial entities it knows about. This works exactly the same way as awakeFromInsertion(), for example. --- .../Sources/er/extensions/partials/ERXPartial.java | 11 +++++++++++ .../extensions/partials/ERXPartialGenericRecord.java | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartial.java b/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartial.java index ee987c57921..4ec365d63fe 100644 --- a/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartial.java +++ b/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartial.java @@ -368,4 +368,15 @@ public Object validateValueForKey(Object value, String key) throws NSValidation. throw exception.exceptionWithObjectAndKey(this, key); } } + + /** + * Delegated from the base entity. A partial entity can override this method + * to perform object initialisation. It will be called when the base + * entity's {@code init()} method is called. + * + * @param editingContext + * this object's {@link EOEditingContext} + */ + protected void init(EOEditingContext editingContext) { + } } diff --git a/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartialGenericRecord.java b/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartialGenericRecord.java index 8dcfe5bf568..d296ec21573 100644 --- a/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartialGenericRecord.java +++ b/Frameworks/Core/ERExtensions/Sources/er/extensions/partials/ERXPartialGenericRecord.java @@ -180,6 +180,15 @@ public void awakeFromInsertion(EOEditingContext editingContext) { } } + @Override + protected void init(EOEditingContext editingContext) { + super.init(editingContext); + // Call init() on all partial entities + for (ERXPartial partial : _partials()) { + partial.init(editingContext); + } + } + @Override public void awakeFromFetch(EOEditingContext editingContext) { super.awakeFromFetch(editingContext);