Re: eogen takeStoredValueForKey(toManyArray, relationshipName)
Re: eogen takeStoredValueForKey(toManyArray, relationshipName)
- Subject: Re: eogen takeStoredValueForKey(toManyArray, relationshipName)
- From: Kieran Kelleher <email@hidden>
- Date: Thu, 5 Mar 2009 15:21:31 -0500
In the past I have written something like this to "diff/merge" the
array param with the current relationship array. For example:
<snip>
public void setDataRecordsRelationship( NSArray<CTDataRecord>
dataRecordsToSet ) {
if ( dataRecordsToSet == null ) {
NSArray<CTDataRecord> currentDataRecords =
dataRecords().immutableClone();
for (CTDataRecord dataRecord : currentDataRecords) {
removeFromDataRecordsRelationship(dataRecord);
dataRecord.deleteIfOrphan();
}
} else if (countDataRecords().intValue() == 0) {
addObjectsToBothSidesOfRelationshipWithKey(dataRecordsToSet,
KEY_DATA_RECORDS);
} else {
// Get list of records in relationship that are not in
new set
NSArray<CTDataRecord> eosToDelete =
ERXArrayUtilities.arrayMinusArray(dataRecords().immutableClone(),
dataRecordsToSet);
// Get list of ones to add
NSArray<CTDataRecord> eosToAdd =
ERXArrayUtilities
.arrayMinusArray
(dataRecordsToSet.immutableClone(),dataRecords().immutableClone());
// Perform adds
addObjectsToBothSidesOfRelationshipWithKey(eosToAdd,
KEY_DATA_RECORDS);
// Perform removes/deletes
for (CTDataRecord dataRecord : eosToDelete) {
removeFromDataRecordsRelationship(dataRecord);
dataRecord.deleteIfOrphan();
}
}
}
</snip>
On Mar 5, 2009, at 2:32 PM, Chuck Hill wrote:
On Mar 5, 2009, at 11:00 AM, Anjo Krank wrote:
I have yet to see *one* case where setting an array is actually
useful, since AFAIK you can't simply create an array, add a new EO,
set this array and expect to get a reasonable object graph.
I think you can actually. I can think of several times that I have
done this.
I *did* have a special NSArray class especially for relationships
that was "linked" to the EO, in that you could
someEO.someRelationship().addObject() to it and it would call up
someEO.addObjectToBothSides() for you, but it was a bitch to write
(like the two-side relationship stuff).
Cheers, Anjo
Am 03.03.2009 um 04:51 schrieb Chuck Hill:
On Mar 2, 2009, at 7:09 PM, Dan Faber wrote:
I have noticed that the default _wonder.java template does not
produce a method to assign an array to a toMany relationship, as:
public void setMyMany(NSArray value) {
takeStoredValueForKey(value, "myMany");
}
Is there a problem with doing so? Should I change my method to
delete all the current relationships, and then loop through the
updated array and use "addTo${relationship.capitalizedName}"
instead?
Thanks
Dan Faber
email@hidden
This is more of a Wonder question. It is safe WRT to EOF to do
this. BUT ERXGenericRecord has some fancy relationship automagic
manipulation that may not work. It may work, I don't use it and I
don't recall offhand.
Chuck
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve
specific problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
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
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
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
_______________________________________________
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