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
-~----------~----~----~----~------~----~------~--~---

Reply via email to