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 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 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 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:
      java.lang.InstantiationException - if attempting to instantiate an interface or abstract class
      java.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 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 java.lang.Object postCompleteNode​(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.Object node)
      Specified by:
      postCompleteNode in interface PostCompletionFactory