Re: Want to iterate over items in EditingContext for validation before save
Re: Want to iterate over items in EditingContext for validation before save
- Subject: Re: Want to iterate over items in EditingContext for validation before save
- From: WebObjects <email@hidden>
- Date: Wed, 03 May 2006 13:55:28 -0700
- Thread-topic: Want to iterate over items in EditingContext for validation before save
I'm taking a poke at using "ec.insertedObjects()" to evaluate each object
prior to saving. So far I can grab an array of the objects, although I had
to cast them into EO's and not simply their entity type (code immediately
following):
NSArray tester = new NSArray(ec.insertedObjects());
Enumeration enumerator = tester.objectEnumerator();
while (enumerator.hasMoreElements()) {
EOEnterpriseObject myObjectToTest =
(EOEnterpriseObject)enumerator.nextElement();
...}
...I'm pretty close, the next thing I'm doing is trying to gain access to
the KeyValues within the EOEnterpriseObject, which I'm trying to use the
following to get at this...
NSArray allPropertyKeys()
Returns all of the receiver's property keys.
NSArray attributeKeys()
Returns the names of the receiver's attributes (not relationship
properties).
...however, these only seem to return the Property keys and not the
properties/values. The API isn't the easiest to read. My goal is to get at
the values and then to use ec.deleteObject( myObjectToTest ) when needed.
What is the right method to access the Keyvalues-properties?
Thanks!
-Bill
on 5/2/06 19:07, Ken Anderson at email@hidden wrote:
> No, but doing ec.deleteObject(obj) will. If the object is new and
> has never been saved, it will effectively be nullified.
>
> On May 2, 2006, at 10:01 PM, WebObjects wrote:
>
>> Art,
>>
>> I'm thinking of EOEditingContext.insertedObjects() as the choice in
>> this
>> case. I actually thought that may be the answer here (thanks for
>> your time
>> on this).
>>
>> If I were to remove an element of the NSArray returned by this
>> method, would
>> then calling .saveChanges() on the ec now exclude objects removed
>> from the
>> array? If so is this because of the magic of WO keeping track of
>> things?
>> (it seems to easy, like I'm missing something)
>>
>> Thanks for your wisdom,
>>
>> -Bill
>>
>>
>> on 5/2/06 18:53, Art Isbell at email@hidden wrote:
>>
>>> On May 2, 2006, at 2:48 PM, WebObjects wrote:
>>>
>>>> I've found an error in my coding style - too late in this project
>>>> though. I
>>>> use EOUtilities.createAndInsertInstance in a constructor for a
>>>> page, and as
>>>> a result 'refresh' and 'back' have become my enemies.
>>>>
>>>> How can I iterated over the unsaved objects in an EditingContext
>>>> (ec), test
>>>> their validity (ie. if ItemAt(0).getSomeValue() == null, etc) and
>>>> delete
>>>> them from the ec prior to .saveChanges() ?
>>>
>>> It would seem that if you can modify your code to iterate over
>>> unsaved objects, that you could also modify your constructor to fix
>>> this problem. But maybe not...
>>>
>>> EOEditingContext.insertedObjects() returns an array of inserted
>>> objects.
>>>
>>> Or probably better, assuming that you can modify your constructor,
>>> would be to create a new editing context assigned to an instance
>>> variable of this component, lock it, and insert your new objects into
>>> this new editing context. Then if the user backtracks or refreshes,
>>> only objects inserted into the editing context of the current
>>> instance of this component would be saved. Objects inserted into
>>> other instances of the same component would be freed when the
>>> component drops out of the page cache without being saved to the DB.
>>>
>>> Aloha,
>>> Art
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>> 40concyse.com
>>>
>>> This email sent to email@hidden
>>
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>> 40anderhome.com
>>
>> This email sent to email@hidden
>
_______________________________________________
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