Package: org.codehaus.groovy.runtime

## [Java] Class GroovyCategorySupport

- org.codehaus.groovy.runtime.GroovyCategorySupport

-     public class GroovyCategorySupport
      extends Object

  Support methods for Groovy category usage

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `static class` | `GroovyCategorySupport.CategoryMethod` |
    `static class` | `GroovyCategorySupport.CategoryMethodList` |
    `static class` | `GroovyCategorySupport.ThreadCategoryInfo` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public static GroovyCategorySupport.CategoryMethodList` | `getCategoryMethods(String name)` This method is used to pull all the new methods out of the local thread context with a particular name.
    `` | `public static AtomicInteger` | `getCategoryNameUsage(String name)`
    `` | `public static String` | `getPropertyCategoryGetterName(String propertyName)`
    `` | `public static String` | `getPropertyCategorySetterName(String propertyName)`
    `` | `public static boolean` | `hasCategoryInAnyThread()` deprecated: use hasCategoryInCurrentThread()
    `` | `public static boolean` | `hasCategoryInCurrentThread()`
    `<T>` | `public static T` | `use(Class categoryClass, Closure<T> closure)` Create a scope based on given categoryClass and invoke closure within that scope.
    `<T>` | `public static T` | `use(List<Class> categoryClasses, Closure<T> closure)` Create a scope based on given categoryClasses and invoke closure within that scope.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### public static GroovyCategorySupport.CategoryMethodList getCategoryMethods(String name)

      This method is used to pull all the new methods out of the local thread context with a particular name.

      Parameters:
        `name` - the method name of interest
      Returns:
        the list of methods

    - #### public static AtomicInteger getCategoryNameUsage(String name)

    - #### public static String getPropertyCategoryGetterName(String propertyName)

    - #### public static String getPropertyCategorySetterName(String propertyName)

    - #### @Deprecated
      public static boolean hasCategoryInAnyThread()

      deprecated:
        use hasCategoryInCurrentThread()

    - #### public static boolean hasCategoryInCurrentThread()

    - #### <T> public static T use(Class categoryClass, Closure<T> closure)

      Create a scope based on given categoryClass and invoke closure within that scope.

      Parameters:
        `categoryClass` - the class containing category methods
        `closure` - the closure during which to make the category class methods available
      Returns:
        the value returned from the closure

    - #### <T> public static T use(List<Class> categoryClasses, Closure<T> closure)

      Create a scope based on given categoryClasses and invoke closure within that scope.

      Parameters:
        `categoryClasses` - the list of classes containing category methods
        `closure` - the closure during which to make the category class methods available
      Returns:
        the value returned from the closure