Package 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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `InlinedASTCustomizerFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isHandlesNodeChildren()`
  Does this factory "Own" its 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 Details

  - ### InlinedASTCustomizerFactory

    public InlinedASTCustomizerFactory()

- ## Method Details

  - ### isHandlesNodeChildren

    public boolean isHandlesNodeChildren()
    Description copied from interface: `Factory`
    Does this factory "Own" its 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`