How to access data when return type is an object?

5 views
Skip to first unread message

Ben Densmore

unread,
Jul 1, 2009, 1:52:32 PM7/1/09
to cfc...@googlegroups.com
I'm working with the ebay API and using one of the methods to retrieve some Category Info, this gets me the top level categories.

From there I want to get the child categories. There is a method that is returned from the web service call named getChildCategory(), this method has a return type of eBLBaseComponents.apis.ebay.StoreCustomCategoryType

If I do this:
<cfset ebayCategoryCreator = createObject("component","components.Ebay") />

<cfset createdCategories =  ebayCategoryCreator.createEbayCategory() />
<cfset store = createdCategories.getStore().getCustomCategories().getCustomCategory() />

<cfloop from="1" to="#ArrayLen(store)#" index="category">
<cfoutput>
  #store[category].getChildCategory()# <br />
 </cfoutput>
</cfloop>

The output returned is:
[LeBLBaseComponents.apis.ebay.StoreCustomCategoryType;@3c474b6

If I look at the StoreCustomCategoryType Java file I can see the methods defined as follows:
  
 public eBLBaseComponents.apis.ebay.StoreCustomCategoryType[] getChildCategory() {
        return childCategory;
    }


    public eBLBaseComponents.apis.ebay.StoreCustomCategoryType getChildCategory(int i) {
        return childCategory[i];
    }

How can I get at the child categories?

Thanks,
Ben

Tom Chiverton

unread,
Jul 2, 2009, 5:13:38 AM7/2/09
to cfc...@googlegroups.com
On Wednesday 01 Jul 2009, Ben Densmore wrote:
> #store[category].getChildCategory()# <br />

Try cfdump here rather than cfoutput?

--

Tom Chiverton
Developer

Tom.Ch...@halliwells.com
3 Hardman Square, Manchester, M3 3EB

****************************************************

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England and Wales under registered number OC307980 whose registered office address is at Halliwells LLP, 3 Hardman Square, Spinningfields, Manchester, M3 3EB. A list of members is available for inspection at the registered office together with a list of those non members who are referred to as partners. We use the word ?partner? to refer to a member of the LLP, or an employee or consultant with equivalent standing and qualifications. Regulated by the Solicitors Regulation Authority.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and may be confidential or legally privileged. If you are not the addressee you must not read it and must not use any information contained in nor copy it nor inform any person other than Halliwells LLP or the addressee of its existence or contents. If you have received this email in error please delete it and notify Halliwells LLP IT Department on 0870 365 2500.

For more information about Halliwells LLP visit
www.Halliwells.com.

Ben Densmore

unread,
Jul 2, 2009, 1:25:34 PM7/2/09
to cfc...@googlegroups.com
cfdump chokes on it. It gives me an error that var is required or something like that even though I'm doing <cfdump var="#store[category].getChildCategory()#" />, it seems to do this with any method I try to do a cfdump on that has a return type that is an object.

I've never encountered that error with cfdump before.

Ben

Judah McAuley

unread,
Jul 2, 2009, 1:49:06 PM7/2/09
to cfc...@googlegroups.com
Have you tried doing a dump of the Store array and expanding it? You
should be able to click through and see all the members, make sure
they are objects and see their methods. You might also try dumping a
particular array member using a numeric index, like store[1] just to
remove potential strangeness.

Judah

Ben Densmore

unread,
Jul 2, 2009, 1:58:53 PM7/2/09
to cfc...@googlegroups.com
Yeah, I have tried all those.

I can see the getChildCategory() method in the dump and as I said it has a return type of eBLBaseComponents.apis.ebay.StoreCustomCategoryType which is really just a bean.

I'm missing something, just not sure what.

Ben

Judah McAuley

unread,
Jul 2, 2009, 2:21:31 PM7/2/09
to cfc...@googlegroups.com
Well, looking at the java code you posted, it seems that there are two
getChildCategory methods, one which returns an array and one which
returns a particular member of an array. What happens when you call
getChildCategory(1)?

Judah

Ben Densmore

unread,
Jul 2, 2009, 2:33:31 PM7/2/09
to cfc...@googlegroups.com
I get a null pointer error.

Anthony Israel-Davis

unread,
Jul 2, 2009, 2:44:34 PM7/2/09
to cfc...@googlegroups.com
That often occurs when the the object returns nothing - no childCategories. I've run into this type of thing before with web service objects.
 
Anthony


From: cfc...@googlegroups.com [mailto:cfc...@googlegroups.com] On Behalf Of Ben Densmore
Sent: Thursday, July 02, 2009 11:34 AM
To: cfc...@googlegroups.com
Subject: [CFCDEV] Re: How to access data when return type is an object?

Judah McAuley

unread,
Jul 2, 2009, 3:10:27 PM7/2/09
to cfc...@googlegroups.com
Ah, good point Anthony. You might try an ArrayLen on getChildCategory
and see what that returns.

Judah

Adrian Lynch

unread,
Jul 31, 2009, 5:44:04 AM7/31/09
to CFCDev
You'll get that error whenever you dump a function call that doesn't
return anything.

<cffunction name="nowt">
<!--- I return nothing --->
</cffunction>

<cfdump var="#nowt()#">
Reply all
Reply to author
Forward
0 new messages