Hmm, I've never even heard of listColumns(). If it were me, I'd use the metadata that Transfer makes available for just this purpose. In case you didn't see it, here's a link to a post I did about using Transfer's metadata to create your own implementation of getMemento(): http://www.silverwareconsulting.com/index.cfm/2008/6/17/Using-Transfer-Metadata-to-Create-a-Memento
Cheers, Bob On Thu, Nov 5, 2009 at 4:40 PM, Jim Rising <[email protected]> wrote: > what about listColumns() ? > > <cffunction name="copyTransferObject" output="false" hint="I copy one > transfer object to another"> > <cfargument name="aObject" required="true" > type="transfer.com.TransferObject"> > <cfargument name="bObject" required="true" > type="transfer.com.TransferObject"> > <cfset var aObject = arguments.aObject> > <cfset var bObject = arguments.bObject> > > <cfset bColumns = bObject.listColumns()> > <cfloop list="#bColumns#" index="columnName"> > <cfset getter = "aObject.get#columnName#()"> > <cfset columnValue = Evaluate(getter)> > <cfset setter = 'bObject.set#columnName#("#columnValue#")'> > <cfset Evaluate(setter)> > </cfloop> > <cfreturn bObject /> > </cffunction> > > On Thu, Nov 5, 2009 at 3:23 PM, Bob Silverberg > <[email protected]>wrote: > >> I'm sure Mark will correct me if I'm mistaken, but I don't think you >> should be calling setTransferObject() in your code. I'm guessing you could >> get yourself into all kinds of trouble. >> >> >> On Thu, Nov 5, 2009 at 3:26 PM, John Watson <[email protected]> wrote: >> >>> I'm actually running into issues of losing my decorator methods after >>> using the setTransferObject(TO). I haven't had time to debug yet (as this is >>> not a production app yet). >>> >>> I do this inside a "myDecoratedObject" called someobject: >>> >>> <cfset TO = getTransfer().readByPropertyMap("myDecoratedObject",filter) >>> /> >>> <cfif TO.getIsPersisted()> >>> <cfset setTransferObject(TO) /> >>> <cfelse> >>> <!--- code that initializes this object based on the filter and saves it >>> ---> >>> </cfif> >>> >>> After running this code, randomly (haven't investigated yet; believe it >>> somehow related to my filter). "someobject" loses all of its decorator >>> methods until I clear the transfer cache. >>> >>> Bob, I read your blog post: >>> >>> http://www.silverwareconsulting.com/index.cfm/2008/7/22/How-I-Use-Transfer--Part-IX--My-Abstract-Transfer-Decorator-Object--The-Populate-Method >>> And i think I will try that out whenever I go back to working on my >>> project. Thanks for the tip! >>> >>> Mark, any plans for implementing something similar? >>> >>> Thanks, >>> John >>> >>> On Thu, Nov 5, 2009 at 12:11, Jim Rising <[email protected]>wrote: >>> >>>> Mark, >>>> >>>> Thanks. I'll look into it a bit further. >>>> >>>> -jim >>>> >>>> >>>> >>>> On Thu, Nov 5, 2009 at 1:14 PM, Mark Mandel <[email protected]>wrote: >>>> >>>>> Probably because you are using a variety of undocumented badness :o( >>>>> >>>>> getMemento() , switching out the inner object if a Decorator... all >>>>> sounds pretty bad if you ask me. >>>>> >>>>> I think Bob's approach of using his memento function is probably the >>>>> way to go. >>>>> >>>>> Mark >>>>> >>>>> >>>>> >>>>> On Fri, Nov 6, 2009 at 6:07 AM, Jim Rising <[email protected]>wrote: >>>>> >>>>>> ok... so here is what I did in my decorator: >>>>>> >>>>>> <cffunction name="copyContentTemplate"> >>>>>> <cfargument name="contentTemplate" >>>>>> type="transfer.com.transferObject" required="true"> >>>>>> <cfset var contentTemplate = arguments.contentTemplate> >>>>>> <cfset var content = getTransfer().get("content.Content", "")> >>>>>> >>>>>> <cfset content = setTransferObject(contentTemplate)> >>>>>> </cffunction> >>>>>> >>>>>> now... this does seem to copy a 'contentTemplate' TO into a 'content' >>>>>> TO without any issues, but when i attempt to save using the following: >>>>>> >>>>>> <cffunction name="saveContent" access="public" returntype="any"> >>>>>> <cfargument name="content" type="transfer.com.transferObject" >>>>>> required="true"> >>>>>> <cfset var content = arguments.content> >>>>>> >>>>>> <cfset getTransfer().save(content)> >>>>>> >>>>>> </cffunction> >>>>>> >>>>>> the object does not save. >>>>>> >>>>>> any ideas? >>>>>> >>>>>> -jim >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Oct 29, 2009 at 11:21 AM, John Watson <[email protected]>wrote: >>>>>> >>>>>>> Someone who knows a little more detail about how the caching works >>>>>>> may say what I suggest is a bad a idea, but here's a method I've used >>>>>>> with >>>>>>> no issues yet. >>>>>>> >>>>>>> Inside the decorator I've used the TO.setTransferObject(otherTO) >>>>>>> method. Though both the setting object and the TO object are both the >>>>>>> same >>>>>>> (IE: content/content). >>>>>>> >>>>>>> Another idea may be to use setMemento(mementoStruct) >>>>>>> >>>>>>> John >>>>>>> >>>>>>> >>>>>>> On Thu, Oct 29, 2009 at 09:10, Jim Rising >>>>>>> <[email protected]>wrote: >>>>>>> >>>>>>>> I'm needing to copy one TO to another TO, and wondered if anyone had >>>>>>>> any ideas on the best way to do that? Basically I have one TO that >>>>>>>> needs to >>>>>>>> serve as a 'template' of another. >>>>>>>> >>>>>>>> Example: >>>>>>>> >>>>>>>> I have a TO called 'contentTemplate' and another called 'content'. >>>>>>>> I want to be able to create a 'content' object from the >>>>>>>> 'contentTemplate' object. >>>>>>>> >>>>>>>> I'm thinking I will need to just get / set everything between each >>>>>>>> of them, but was hoping I would have another option available. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> -- >>>>>>>> Jim Rising >>>>>>>> Serial Entrepreneur >>>>>>>> Software Engineer >>>>>>>> Web Developer >>>>>>>> >>>>>>>> "Knowledge work requires both autonomy and accountability." >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Jim Rising >>>>>> Serial Entrepreneur >>>>>> Software Engineer >>>>>> Web Developer >>>>>> >>>>>> "Knowledge work requires both autonomy and accountability." >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> E: [email protected] >>>>> T: http://www.twitter.com/neurotic >>>>> W: www.compoundtheory.com >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Jim Rising >>>> Serial Entrepreneur >>>> Software Engineer >>>> Web Developer >>>> >>>> "Knowledge work requires both autonomy and accountability." >>>> >>>> >>>> >>> >>> >>> >> >> >> -- >> Bob Silverberg >> www.silverwareconsulting.com >> >> >> > > > -- > Jim Rising > Serial Entrepreneur > Software Engineer > Web Developer > > "Knowledge work requires both autonomy and accountability." > > > > -- Bob Silverberg www.silverwareconsulting.com --~--~---------~--~----~------------~-------~--~----~ Before posting questions to the group please read: http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer You received this message because you are subscribed to the Google Groups "transfer-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en -~----------~----~----~----~------~----~------~--~---
