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
  • 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