Package org.codehaus.groovy.ast.tools

# Class ClosureUtils

java.lang.Object
org.codehaus.groovy.ast.tools.ClosureUtils

public class ClosureUtils extends Object
Handy methods when working with Closure AST data structures.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClosureUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `convertClosureToSource(ReaderSource readerSource, ClosureExpression expression)`
  Converts a ClosureExpression into the String source.
  `static Parameter[]`
  `getParametersSafe(ClosureExpression ce)`
  `static String`
  `getResolveStrategyName(int resolveStrategy)`
  Returns the constant name associated with the given resolve strategy.
  `static boolean`
  `hasImplicitParameter(ClosureExpression ce)`
  `static boolean`
  `hasSingleCharacterArg(Closure c)`
  Does the Closure have a single char-like (char or Character) argument.
  `static boolean`
  `hasSingleStringArg(Closure c)`
  Does the Closure have a single String argument.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ClosureUtils

    public ClosureUtils()

- ## Method Details

  - ### convertClosureToSource

    public static String convertClosureToSource(ReaderSource readerSource, ClosureExpression expression) throws Exception
    Converts a ClosureExpression into the String source.
    Parameters:
      `readerSource` - a source
      `expression` - a closure. Can't be null
    Returns:
      the source the closure was created from
    Throws:
      `IllegalArgumentException` - when expression is null
      `Exception` - when closure can't be read from source

  - ### hasSingleCharacterArg

    public static boolean hasSingleCharacterArg(Closure c)
    Does the Closure have a single char-like (char or Character) argument.
    Parameters:
      `c` - a Closure
    Returns:
      true if it has exactly one argument and the type is char or Character

  - ### hasSingleStringArg

    public static boolean hasSingleStringArg(Closure c)
    Does the Closure have a single String argument.
    Parameters:
      `c` - a Closure
    Returns:
      true if it has exactly one argument and the type is String

  - ### hasImplicitParameter

    public static boolean hasImplicitParameter(ClosureExpression ce)
    Returns:
      true if the ClosureExpression has an implicit 'it' parameter

  - ### getParametersSafe

    public static Parameter[] getParametersSafe(ClosureExpression ce)
    Returns:
      the parameters for the ClosureExpression

  - ### getResolveStrategyName

    public static String getResolveStrategyName(int resolveStrategy)
    Returns the constant name associated with the given resolve strategy.
    Since:
      3.0.5