Re: ideas to dupe an EO
Re: ideas to dupe an EO
- Subject: Re: ideas to dupe an EO
- From: Theodore Petrosky <email@hidden>
- Date: Mon, 18 Feb 2013 05:53:47 -0800 (PST)
could there be something wrong here:
ERXCopyable.copyLogger.debug("Removing objects in to-many relationship " + relationshipName);
for (ERXCopyable relatedObject : relatedObjects) {
destination.removeObjectFromBothSidesOfRelationshipWithKey(relatedObject, relationshipName);
if (relatedObject.isNewObject()) {
editingContext.deleteObject(relatedObject);
}
}
at this point in the process I get:
I do not understand the code that starts the for loop. from what to what?
java.util.NoSuchElementException
at com.webobjects.foundation.NSMutableArray$Itr.next(NSMutableArray.java:656)
at er.extensions.eof.ERXCopyable$Utility.cleanRelationships(ERXCopyable.java:442)
at er.extensions.eof.ERXCopyable$Utility.newInstance(ERXCopyable.java:856)
at com.as.Model.ProjectWorkOrder.duplicate(ProjectWorkOrder.java:59)
at com.as.Model.ProjectWorkOrder.duplicate(ProjectWorkOrder.java:1)
at er.extensions.eof.ERXCopyable$DefaultImplementation.copy(ERXCopyable.java:309)
at com.as.Model.ProjectWorkOrder.copy(ProjectWorkOrder.java:51)
at com.as.Model.ProjectWorkOrder.copy(ProjectWorkOrder.java:45)
at com.as.Model.ProjectWorkOrder.copy(ProjectWorkOrder.java:1)
at Components.TPMODInspectPage.dupeAction(TPMODInspectPage.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:731)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:44)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:731)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:44)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:731)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:44)
at com.webobjects.appserver._private.WOGenericElement.invokeAction(WOGenericElement.java:137)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:66)
at er.coolcomponents.CCSubmitLink.invokeAction(CCSubmitLink.java:63)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:66)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:66)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at er.extensions.components._private.ERXWOForm.invokeAction(ERXWOForm.java:218)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at er.extensions.components.conditionals.ERXWOConditional.invokeChildrenAction(ERXWOConditional.java:116)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at er.extensions.components.conditionals.ERXWOConditional.invokeAction(ERXWOConditional.java:108)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:66)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:50)
at er.ajax.AjaxUpdateContainer.invokeAction(AjaxUpdateContainer.java:83)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver._private.WOHTMLURLValuedElement.invokeAction(WOHTMLURLValuedElement.java:149)
at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:120)
at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:747)
at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
at com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
at er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:119)
at er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1988)
at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedPage(ERXComponentRequestHandler.java:157)
at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedSession(ERXComponentRequestHandler.java:235)
at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedApplication(ERXComponentRequestHandler.java:268)
at er.extensions.appserver.ERXComponentRequestHandler._handleRequest(ERXComponentRequestHandler.java:302)
at er.extensions.appserver.ERXComponentRequestHandler.handleRequest(ERXComponentRequestHandler.java:378)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:2109)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:2074)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
at java.lang.Thread.run(Thread.java:680)
--- On Fri, 2/15/13, David Avendasora <email@hidden> wrote:
> From: David Avendasora <email@hidden>
> Subject: Re: ideas to dupe an EO
> To: "Theodore Petrosky" <email@hidden>
> Cc: "WebObjects Development" <email@hidden>
> Date: Friday, February 15, 2013, 3:52 PM
> Hi Ted,
>
> On Feb 16, 2013, at 2:11 AM, Theodore Petrosky <email@hidden>
> 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@hidden>
> wrote:
> >
> >> From: David LeBer <email@hidden>
> >> Subject: Re: ideas to dupe an EO
> >> To: "Theodore Petrosky" <email@hidden>
> >> Cc: "WebObjects Development" <email@hidden>
> >> Date: Friday, February 15, 2013, 10:51 AM
> >> You probably want ERXCopyable.
> >>
> >> http://www.mail-archive.com/email@hidden/msg52084.html
> >>
> >> D
> >>
> >> On 2013-02-15, at 10:42 AM, Theodore Petrosky
> <email@hidden>
> >> 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@hidden)
> >>> Help/Unsubscribe/Update your Subscription:
> >>>
> >>> This email sent to email@hidden
> >>
> >>
> >
> >
>
>
> —————————————————————————————
> 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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden