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.java.lang.Object
newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes)
boolean
onNodeChildren(FactoryBuilderSupport builder, java.lang.Object node, Closure childContent)
Only called if it isLeaf is false and isHandlesNodeChildren is truejava.lang.Object
postCompleteNode(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.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 interfaceFactory
- Overrides:
isHandlesNodeChildren
in classAbstractFactory
- Returns:
- true if the factory should have onContentClosure() called, false if the builder should handle it
-
newInstance
public java.lang.Object newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes) throws java.lang.InstantiationException, java.lang.IllegalAccessException- Specified by:
newInstance
in interfaceFactory
- Parameters:
builder
- the FactoryBuildername
- the name of the node being builtvalue
- the 'value' argument in the build nodeattributes
- the attributes of the build arg- Returns:
- the object created for the builder
- Throws:
java.lang.InstantiationException
- if attempting to instantiate an interface or abstract classjava.lang.IllegalAccessException
- if the instance can't be created due to a security violation
-
onNodeChildren
public boolean onNodeChildren(FactoryBuilderSupport builder, java.lang.Object node, Closure childContent)Description copied from interface:Factory
Only called if it isLeaf is false and isHandlesNodeChildren is true- Specified by:
onNodeChildren
in interfaceFactory
- Overrides:
onNodeChildren
in classAbstractFactory
- Parameters:
builder
- the FactoryBuildernode
- the node (returned from newINstance) to consider the attributes forchildContent
- the child content closure of the builder- Returns:
- true if the factory builder should apply default node processing to the content child
-
postCompleteNode
public java.lang.Object postCompleteNode(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.Object node)- Specified by:
postCompleteNode
in interfacePostCompletionFactory
-