Package groovy.util

## Class AbstractFactory

- java.lang.Object
- - groovy.util.AbstractFactory

- All Implemented Interfaces:
    `Factory`
  Direct Known Subclasses:
    `CustomizersFactory`, `ImportCustomizerFactory`, `InlinedASTCustomizerFactory`, `SecureASTCustomizerFactory`, `SourceAwareCustomizerFactory`

      public abstract class AbstractFactory
      extends Object
      implements Factory

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractFactory()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isHandlesNodeChildren()` | Does this factory "Own" it's child closure.
    `boolean` | `isLeaf()` |
    `void` | `onFactoryRegistration​(FactoryBuilderSupport builder, String registeredName, String group)` | Called when a factory is registered to a builder
    `boolean` | `onHandleNodeAttributes​(FactoryBuilderSupport builder, Object node, Map attributes)` |
    `boolean` | `onNodeChildren​(FactoryBuilderSupport builder, Object node, Closure childContent)` | Only called if it isLeaf is false and isHandlesNodeChildren is true
    `void` | `onNodeCompleted​(FactoryBuilderSupport builder, Object parent, Object node)` |
    `void` | `setChild​(FactoryBuilderSupport builder, Object parent, Object child)` |
    `void` | `setParent​(FactoryBuilderSupport builder, Object parent, Object child)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface groovy.util.Factory

      `newInstance`

- - ### Constructor Detail

    - #### AbstractFactory

          public AbstractFactory()

  - ### Method Detail

    - #### isLeaf

          public boolean isLeaf()

      Specified by:
        `isLeaf` in interface `Factory`
      Returns:
        true if no child closures should be processed

    - #### isHandlesNodeChildren

          public boolean isHandlesNodeChildren()

      Description copied from interface: `Factory`
      Does this factory "Own" it's child closure.
      Specified by:
        `isHandlesNodeChildren` in interface `Factory`
      Returns:
        true if the factory should have onContentClosure() called, false if the builder should handle it

    - #### onFactoryRegistration

          public void onFactoryRegistration​(FactoryBuilderSupport builder,
                                            String registeredName,
                                            String group)

      Description copied from interface: `Factory`
      Called when a factory is registered to a builder
      Specified by:
        `onFactoryRegistration` in interface `Factory`
      Parameters:
        `builder` - the build the factory has been registered to
        `registeredName` - the name the factory has been registered under

    - #### onHandleNodeAttributes

          public boolean onHandleNodeAttributes​(FactoryBuilderSupport builder,
                                                Object node,
                                                Map attributes)

      Specified by:
        `onHandleNodeAttributes` in interface `Factory`
      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

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

          public void onNodeCompleted​(FactoryBuilderSupport builder,
                                      Object parent,
                                      Object node)

      Specified by:
        `onNodeCompleted` in interface `Factory`
      Parameters:
        `builder` - the FactoryBuilder
        `parent` - the parent node (null if 'root')
        `node` - the node just completed

    - #### setParent

          public void setParent​(FactoryBuilderSupport builder,
                                Object parent,
                                Object child)

      Specified by:
        `setParent` in interface `Factory`

    - #### setChild

          public void setChild​(FactoryBuilderSupport builder,
                               Object parent,
                               Object child)

      Specified by:
        `setChild` in interface `Factory`