groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guy Matz <guym...@gmail.com>
Subject Re: Calling a static method by packagename.method
Date Thu, 07 Apr 2016 16:01:11 GMT
Thanks for the reply!  The thing is, though, that my static methods are not
within a class . . .  does that make a difference?
One other thing: When I try to call createTicket() as jira.createTicket() I
get:
groovy:000> jira.createTicket()
Unknown property: jira

Any other thoughts would be greatly appreciated!

On Thu, Apr 7, 2016 at 11:47 AM, Winnebeck, Jason <
Jason.Winnebeck@windstream.com> wrote:

> Math is a class, not a package. So if you create a class jira (it really
> should at least start with a capital in Groovy, so JIRA or Jira) with
> static methods, you can access it like you do with Math. Note in your
> example, “import static java.lang.Math.*” actually is allowing you to use
> constants like PI without putting Math.PI in front – your import actually
> does nothing because you use Math.PI and Math is part of java.lang, which
> is a default import. Below you can see a proper way:
>
>
>
> package org.matz.utils
>
>
>
> class Jira{
>
>   static void createTicket() {}
>
> }
>
>
>
> And in your script:
>
>
>
> import org.matz.utils.* //Now you can reference any class in this package
> by its name alone, including Jira
>
>
>
> Jira.createTicket()
>
>
>
> Jason
>
>
>
> *From:* Guy Matz [mailto:guymatz@gmail.com]
> *Sent:* Thursday, April 07, 2016 11:34 AM
> *To:* users@groovy.apache.org
> *Subject:* Calling a static method by packagename.method
>
>
>
> Hello!  I have some static methods defined and am able to access them
> after I import, e,.g.
>
> import static org.matz.utils.jira.*
>
>
>
> With that import I can call the methods, e.g. createTicket, but I would
> like to be able to call it as *jira*.createTicket, as is possible with
> the Math package, e.g.
>
>
>
> import static java.lang.Math.*
>
> println "PI is ${PI} (${Math.PI})"
>
>
>
> my method declaration in jira.groovy is (including the namespace):
>
> package org.matz.jenkins
>
>
>
> def static void createTicket(String changelog, String summary, Map config)
> { ... }
>
>
>
> Does anyone know what I need to do to either my definitions, or import, or
> something else to be able to refer to the createTicket method as
> jira.createTicket?  I would like to be able to do this to avoid name
> collisions as well as to be able to make explicit which "class" I'm calling
> the method on.
>
>
>
> Thanks!
>
> Guy
>
>
> ------------------------------
> This email message and any attachments are for the sole use of the
> intended recipient(s). Any unauthorized review, use, disclosure or
> distribution is prohibited. If you are not the intended recipient, please
> contact the sender by reply email and destroy all copies of the original
> message and any attachments.
>

Mime
View raw message