Ted,

You should be able to do something like:

        ((ERXCopyable)object()).copy();

Or more safely:

        if (object() instanceof ERXCopyable) {
                ...
                ((ERXCopyable)object()).copy();
                ...
        }

notactuallylookedattheapivoidwhereprohibitedbylawyourmilagemayvary.

On 2013-02-15, at 4:12 PM, Theodore Petrosky <[email protected]> wrote:

> Thank you very much for the catch!!!
> 
> I am stuck half way in D2W land. the TPMODInspectPage only knows about the 
> object(). I was hoping that I could just wire up a button that says "Dupe" 
> and the method would dupe the EO, saveChanges and present the lastPage.
> 
> Obviously, object().copy() won't work as object is an EO that doesn't know 
> that the method copy() exists. I don't think I should be casting this to an 
> Entity of Agenda as that kind of destroys the abstracting process.
> 
> I think I need to do (pseudo coded)
> 
> if (object().respondsTo(copy)) {
>    EO newObject = object().copy();
>    saveChanges(newObject().editingContext);
> }
> 
> But I am tired and lost here. I have the Practical WO book at home and hope 
> that will shed light on my ineptitude.
> 
> Ted
> 
> --- On Fri, 2/15/13, David Avendasora <[email protected]> wrote:
> 
>> From: David Avendasora <[email protected]>
>> Subject: Re: ideas to dupe an EO
>> To: "Theodore Petrosky" <[email protected]>
>> Cc: "WebObjects Development" <[email protected]>
>> Date: Friday, February 15, 2013, 3:52 PM
>> Hi Ted,
>> 
>> On Feb 16, 2013, at 2:11 AM, Theodore Petrosky <[email protected]>
>> wrote:
>> 
>>> @Override
>>> public Agenda
>> duplicate(NSMutableDictionary<EOGlobalID,
>> ERXCopyable<?>> copiedObjects) {
>>>     Agenda duplicate =
>> ERXCopyable.Utility.modelCopy(copiedObjects, (Agenda)
>> this);
>>>     return duplicate;
>>> }
>> 
>> Whoops! My Javadoc has lead you astray. Change the
>> "modelCopy" call to "deepCopy". So:
>> 
>>     @Override
>>     public Agenda
>> duplicate(NSMutableDictionary<EOGlobalID,
>> ERXCopyable<?>> copiedObjects) {
>>     Agenda duplicate =
>> ERXCopyable.Utility.deepCopy(copiedObjects, (Agenda) this);
>>     return duplicate;
>>     }
>> 
>> In order to use the "modelCopy" method, you need to add
>> entries Agenda's UserInfo dictionary in your EOModel which
>> I'm guessing you haven't done.
>> 
>> Once you've done that, calling anInstanceOfAgenda.copy()
>> will create a new instance of Agenda EO in the same EC as
>> anInstanceOfAgenda and then copy all the attributes and
>> relationships from anInstanceOfAgenda to the new instance.
>> You then need to make all the related Entities implement
>> ERXCopyable as well.
>> 
>> The deepCopy assumes that you want copies of all of Agenda's
>> related EOs also, which may or may not be true (probably
>> not). If it is not true, you will need to change the
>> duplicate method to do what is correct for Agenda and its
>> related EOs. If you have Practical WebObjects, read Chapter
>> 9, with special attention to the Tweaking the Copy Process
>> section on page 264.
>> 
>> Basically, you are going to want to use some combination of
>> the various ERXCopyable.Utility.xxxxCopyRelationship methods
>> where xxxx  could be reference, shallow or deep. See
>> the javadoc for an explanation of what each will do.
>> 
>> I hope that helps you!
>> 
>> Dave
>> 
>> 
>>> 
>>> I am trying to add a method to my version of the
>> ERMODInspectPage that will create and save a new copy the
>> object().
>>> 
>>> i'm stuck with the method that fires to duplicate the
>> EO. Could you point me to some code that actually copies?
>>> 
>>> Ted
>>> 
>>> 
>>> --- On Fri, 2/15/13, David LeBer <[email protected]>
>> wrote:
>>> 
>>>> From: David LeBer <[email protected]>
>>>> Subject: Re: ideas to dupe an EO
>>>> To: "Theodore Petrosky" <[email protected]>
>>>> Cc: "WebObjects Development" <[email protected]>
>>>> Date: Friday, February 15, 2013, 10:51 AM
>>>> You probably want ERXCopyable.
>>>> 
>>>> http://www.mail-archive.com/[email protected]/msg52084.html
>>>> 
>>>> D
>>>> 
>>>> On 2013-02-15, at 10:42 AM, Theodore Petrosky
>> <[email protected]>
>>>> wrote:
>>>> 
>>>>> I am looking for an idea on duping an EO. I've
>> thought
>>>> of putting a hyperlink on the listPage then I
>> thought of
>>>> putting a button on the editPage (i am toying with
>> that
>>>> now).
>>>>> 
>>>>> I duped ERMODInspectPage and I added a button.
>> If I
>>>> create a localInstance in a new EC, how can I save
>> this
>>>> 'new' EO. it isn't a new EO yet just a duplicate in
>> a new
>>>> editing context. I am looking at
>> ERXEOControlUtilities to
>>>> see if there are any methods to create a new EO
>> from my old
>>>> one.
>>>>> 
>>>>> but some pointing in the right direction would
>> be
>>>> appreciated.
>>>>> 
>>>>> Ted
>>>>> 
>> _______________________________________________
>>>>> 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/dleber_wodev%40codeferous.com
>>>>> 
>>>>> This email sent to [email protected]
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
>> —————————————————————————————
>> WebObjects - so easy that even Dave Avendasora can do
>> it!™
>> —————————————————————————————
>> David Avendasora
>> Senior Software Abuser
>> Kaiten, Inc.
>> 
>> 
>> 
>> 
>> 
> 
> _______________________________________________
> 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/dleber_wodev%40codeferous.com
> 
> This email sent to [email protected]


 _______________________________________________
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]

Reply via email to