groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Karr <davidmichaelk...@gmail.com>
Subject Re: Strategy for optionally excluding a named method parameter?
Date Sat, 25 Apr 2020 18:57:13 GMT
On Sat, Apr 25, 2020 at 2:00 AM Rathinavelu <rathinavelu@gmail.com> wrote:

> Named parameters are not available in Groovy, say, as in Python., though
> they say it is. Groovy has only mapped parameters. The earlier mail works
> for a single ‘named’ parameter; if there are more parameters Groovy does
> not work as ‘expected’; it treats them only as positional parameters.
>
> Kindly mail me an use-case.
>
> T.Rathinavelu
>

The code sample looks something like this:

    functionName param1: value,
        param2: value,
        param3: value,
        param4: value,
        ...
        param25: value

For instance, we need to make either the previous call or the following:

    functionName param1: value,
        param2: value,
        param3: value,
        ...
        param25: value

Where the "param4" key and value are not provided.  Presently, we have an
"if" checking for a condition, followed by the "true" block with the first
version of the function call with 25 parameters, followed by the "else" and
the "false" block with the second version, which has 24 parameters, all the
same values as in the first block, except for the one key and value not
provided in the second version.


>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *David Karr <davidmichaelkarr@gmail.com>
> *Sent: *Saturday, April 25, 2020 1:48 AM
> *To: *users@groovy.apache.org
> *Subject: *Strategy for optionally excluding a named method parameter?
>
>
>
> Lately my only Groovy work is scripted pipelines in Jenkins, version
> 2.89.4 .
>
>
>
> I'm working with an api that is somewhat dumb in one respect.  The method
> we call takes ~25 parameters.  We send them as named parameters. One of the
> parameters is of boolean type.  What we've discovered from testing is that
> if we send a value as either "true" or "false", it acts as if we sent
> "true".  If we construct the call without that parameter entirely, it acts
> as if we sent "false". I tried making it send null, but that just causes it
> to fail at runtime.  We presently have an "if" for that one flag, with two
> calls to the method, one taking 25 parameters, the other taking 24.  It is
> really obnoxious.
>
>
>
> Obviously, the proper fix is to change their api so that it works
> correctly.  The reality is, that's not going to happen any time soon in
> geological terms.
>
>
>
> Is there a concise groovy syntax we could use that would optionally
> include or exclude a single parameter to the method?
>
>
>
>
>

Mime
View raw message