@Michael: What I'm looking for is the positional equivalent of
argumentCollection. If it wasn't for that, you'd think the same about
passing a structure of arguments -- any object you pass will be
treated as a single argument. But argumentCollection trumps that. I
even tried a structure with keys 1, 2, 3, and passing that as
argumentCollection (unnamed arguments appear inside the function as 1,
2, and 3 if you dump arguments), no joy.

@Jason: Clearly, calling a method three times, each time with one
argument, is very different than calling it once with all three. Say
they're search fields, lastName, FirstName, ZIP; you want the search
to run with all three of them in place, not separately for each one.
(Not sure why you went with an iterator rather than just indexing over
the array, but it doesn't matter, not what I need to do.)

Thanks for the ideas though. This just may not be possible.

Dave

On Wed, Oct 6, 2010 at 12:15 PM, Jason Durham <jdur...@cti-stl.com> wrote:
>
> Whoops.. read the rest of the email below.
>
> var I = positionalArgs.iterator();
> var arg = "";
>
> while( i.hasNext() ) {
>        arg = i.next();
>        SomeComponent.someMethod(arg);
> }
>
> That will call someMethod() for each array value.  You could use a For loop
> with "i LTE arrayLen(positionalArg)" if you don't want to use iterator().
>
> -----Original Message-----
> From: enigment [mailto:enigm...@gmail.com]
> Sent: Wednesday, October 06, 2010 10:48 AM
> To: cf-talk
> Subject: Re: Positional argument collection
>
>
> Thanks for chiming in Michael.
>
> Using ArrayToList would pass all three values as a single string. I'm
> looking for a generic way to pass each array element as an individual
> argument, regardless of how many there are. Take another look at the
> examples I gave.
>
> Dave
>
> On Wed, Oct 6, 2010 at 11:02 AM, Michael Grant <mgr...@modus.bz> wrote:
>>
>> I'm not exactly sure what you're asking but would some variation of
>> this work for you?
>>
>> SomeComponent.someMethod(ArrayToList(positionalArgs));
>>
>> Of course you may need to qualify the list etc if you are passing
>> strings, but I think that suits your example.
>>
>>
>> On Wed, Oct 6, 2010 at 10:54 AM, enigment <enigm...@gmail.com> wrote:
>>
>>>
>>> Say I have an array of values, arbitrary length, that I want to pass
>>> as the arguments to a method.
>>>
>>> For example, with this:
>>>  positionalArgs = ['foo', 'bar', 42]; // this varies, may be any
>>> length I want to make this call:
>>>  SomeComponent.someMethod('foo', 'bar', 42);
>>>
>>> Is there a positional equivalent to argumentCollection, or some other
>>> language construct that I don't know about to do this? If the
>>> arguments were in a structure, I could pass it as the
>>> argumentCollection, but I don't know how to do this by position in a
>>> clean way.
>>>
>>> Only thing I thought of is a switch statement with some finite number
>>> of cases, each of which calls the method with a specific number of
>>> arguments, like this (partial):
>>>   case 2:
>>>      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2]);
>>>      break;
>>>   case 3:
>>>      SomeComponent.someMethod(positionalArgs[1], positionalArgs[2],
>>> positionalArgs[3]);
>>>      break;
>>>   etc...
>>>
>>> Any thoughts? Thanks,
>>>
>>> Dave
>>>
>>>
>>
>>
>
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:337909
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to