org.codehaus.groovy.control.customizers.builder

## Class InlinedASTCustomizerFactory

- java.lang.Object
- - groovy.util.AbstractFactory
  - - org.codehaus.groovy.control.customizers.builder.InlinedASTCustomizerFactory

- All Implemented Interfaces:
    Factory, PostCompletionFactory

      public class InlinedASTCustomizerFactory
      extends AbstractFactory
      implements PostCompletionFactory

  This factory lets a user define a compilation customizer without having to define an anonymous inner class.

  Here is an example, which only logs the class name during compilation:

       inline(phase:'CONVERSION') { source, context, classNode ->
           println "visiting $classNode"
       }

  Since:
    2.1.0
  Author:
    Cedric Champeau

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InlinedASTCustomizerFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isHandlesNodeChildren()` Does this factory "Own" it's child closure.
    `Object` | `newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes)`
    `boolean` | `onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent)` Only called if it isLeaf is false and isHandlesNodeChildren is true
    `Object` | `postCompleteNode(FactoryBuilderSupport factory, Object parent, Object node)`

    - ### Methods inherited from class groovy.util.AbstractFactory

      `isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeCompleted, setChild, setParent`

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

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

- - ### Constructor Detail

    - #### InlinedASTCustomizerFactory

          public InlinedASTCustomizerFactory()

  - ### Method Detail

    - #### isHandlesNodeChildren

          public boolean isHandlesNodeChildren()

      Description copied from interface: `Factory`
      Does this factory "Own" it's child closure.
      Specified by:
        `isHandlesNodeChildren` in interface `Factory`
      Overrides:
        `isHandlesNodeChildren` in class `AbstractFactory`
      Returns:
        true if the factory should have onContentClosure() called, false if the builder should handle it

    - #### newInstance

          public Object newInstance(FactoryBuilderSupport builder,
                           Object name,
                           Object value,
                           Map attributes)
                             throws InstantiationException,
                                    IllegalAccessException

      Specified by:
        `newInstance` in interface `Factory`
      Parameters:
        `builder` - the FactoryBuilder
        `name` - the name of the node being built
        `value` - the 'value' argument in the build node
        `attributes` - the attributes of the build arg
      Returns:
        the object created for the builder
      Throws:
        `InstantiationException` - if attempting to instantiate an interface or abstract class
        `IllegalAccessException` - if the instance can't be created due to a security violation

    - #### onNodeChildren

          public boolean onNodeChildren(FactoryBuilderSupport builder,
                               Object node,
                               Closure childContent)

      Description copied from interface: `Factory`
      Only called if it isLeaf is false and isHandlesNodeChildren is true
      Specified by:
        `onNodeChildren` in interface `Factory`
      Overrides:
        `onNodeChildren` in class `AbstractFactory`
      Parameters:
        `builder` - the FactoryBuilder
        `node` - the node (returned from newINstance) to consider the attributes for
        `childContent` - the child content closure of the builder
      Returns:
        true if the factory builder should apply default node processing to the content child

    - #### postCompleteNode

          public Object postCompleteNode(FactoryBuilderSupport factory,
                                Object parent,
                                Object node)

      Specified by:
        `postCompleteNode` in interface `PostCompletionFactory`