Package org.codehaus.groovy.macro.runtime

# Enum Class MacroBuilder

java.lang.Object
java.lang.Enum<MacroBuilder>
org.codehaus.groovy.macro.runtime.MacroBuilder

All Implemented Interfaces:
  `Serializable`, `Comparable<MacroBuilder>`, `Constable`

@Incubating public enum MacroBuilder extends Enum<MacroBuilder>
Runtime support for

    macro {}

method.

Since:
  2.5.0

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `INSTANCE`
  Shared macro builder instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ASTNode`
  `getMacroValue(BlockStatement closureBlock, boolean asIs)`
  Extracts the value represented by a parsed macro closure.
  `<T> T`
  `macro(boolean asIs, String source, List<Closure<Expression>> context, Class<T> resultClass)`
  Builds a macro value from source text using the conversion phase.
  `<T> T`
  `macro(String source, List<Closure<Expression>> context, Class<T> resultClass)`
  Builds a macro value from source text using the conversion phase.
  `<T> T`
  `macro(CompilePhase compilePhase, boolean asIs, String source, List<Closure<Expression>> context, Class<T> resultClass)`
  Builds a macro value from source text.
  `<T> T`
  `macro(CompilePhase compilePhase, String source, List<Closure<Expression>> context, Class<T> resultClass)`
  Builds a macro value from source text at the supplied compile phase.
  `static MacroBuilder`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static MacroBuilder[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

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

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### INSTANCE

    public static final MacroBuilder INSTANCE
    Shared macro builder instance.

- ## Method Details

  - ### values

    public static MacroBuilder[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static MacroBuilder valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### macro

    public <T> T macro(String source, List<Closure<Expression>> context, Class<T> resultClass)
    Builds a macro value from source text using the conversion phase.
    Type Parameters:
      `T` - the expected result type
    Parameters:
      `source` - the source to parse
      `context` - the substitution closures used for `$v` placeholders
      `resultClass` - the expected result type
    Returns:
      the built macro value

  - ### macro

    public <T> T macro(boolean asIs, String source, List<Closure<Expression>> context, Class<T> resultClass)
    Builds a macro value from source text using the conversion phase.
    Type Parameters:
      `T` - the expected result type
    Parameters:
      `asIs` - whether to keep a single-statement closure as a block
      `source` - the source to parse
      `context` - the substitution closures used for `$v` placeholders
      `resultClass` - the expected result type
    Returns:
      the built macro value

  - ### macro

    public <T> T macro(CompilePhase compilePhase, String source, List<Closure<Expression>> context, Class<T> resultClass)
    Builds a macro value from source text at the supplied compile phase.
    Type Parameters:
      `T` - the expected result type
    Parameters:
      `compilePhase` - the phase to use when parsing the source
      `source` - the source to parse
      `context` - the substitution closures used for `$v` placeholders
      `resultClass` - the expected result type
    Returns:
      the built macro value

  - ### macro

    public <T> T macro(CompilePhase compilePhase, boolean asIs, String source, List<Closure<Expression>> context, Class<T> resultClass)
    Builds a macro value from source text.
    Type Parameters:
      `T` - the expected result type
    Parameters:
      `compilePhase` - the phase to use when parsing the source, or `null` for conversion
      `asIs` - whether to keep a single-statement closure as a block
      `source` - the source to parse
      `context` - the substitution closures used for `$v` placeholders
      `resultClass` - the expected result type
    Returns:
      the built macro value

  - ### getMacroValue

    public static ASTNode getMacroValue(BlockStatement closureBlock, boolean asIs)
    Extracts the value represented by a parsed macro closure.
    Parameters:
      `closureBlock` - the parsed closure block
      `asIs` - whether to keep a single-statement closure as a block
    Returns:
      the resulting AST node