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
Author:
  Cedric Champeau

## Constructor Summary

Constructors
Constructor
Description
`InlinedASTCustomizerFactory()`

## Method Summary

Modifier and Type
Method
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 Details

### InlinedASTCustomizerFactory

public InlinedASTCustomizerFactory()

## Method Details

### 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`