Package groovy.util

Interface Factory

All Known Implementing Classes:
AbstractFactory, CustomizersFactory, ImportCustomizerFactory, InlinedASTCustomizerFactory, SecureASTCustomizerFactory, SourceAwareCustomizerFactory

public interface Factory
  • Method Details

    • isLeaf

      boolean isLeaf()
      Returns:
      true if no child closures should be processed
    • isHandlesNodeChildren

      boolean isHandlesNodeChildren()
      Does this factory "Own" its child closure.
      Returns:
      true if the factory should have onContentClosure() called, false if the builder should handle it
    • onFactoryRegistration

      void onFactoryRegistration​(FactoryBuilderSupport builder, java.lang.String registeredName, java.lang.String registeredGroupName)
      Called when a factory is registered to a builder
      Parameters:
      builder - the build the factory has been registered to
      registeredName - the name the factory has been registered under
    • newInstance

      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
      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
    • onHandleNodeAttributes

      boolean onHandleNodeAttributes​(FactoryBuilderSupport builder, java.lang.Object node, java.util.Map attributes)
      Parameters:
      builder - the FactoryBuilder
      node - the node (returned from newINstance) to consider the attributes for
      attributes - the attributes, a mutable set
      Returns:
      true if the factory builder should use standard bean property matching for the remaining attributes
    • onNodeChildren

      boolean onNodeChildren​(FactoryBuilderSupport builder, java.lang.Object node, Closure childContent)
      Only called if it isLeaf is false and isHandlesNodeChildren is true
      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
    • onNodeCompleted

      void onNodeCompleted​(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object node)
      Parameters:
      builder - the FactoryBuilder
      parent - the parent node (null if 'root')
      node - the node just completed
    • setParent

      void setParent​(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)
    • setChild

      void setChild​(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)