Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD

## groovy.util
[Java] Interface Factory

    public interface Factory

Authors:
  Andres Almiray
  Danno Ferrin

Method Summary
`boolean` | `isHandlesNodeChildren()` Does this factory "Own" it's child closure.
`boolean` | `isLeaf()` @return true if no child closures should be processed
`java.lang.Object` | `newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes)` @param builder the FactoryBuilder
`void` | `onFactoryRegistration(FactoryBuilderSupport builder, java.lang.String registeredName, java.lang.String registeredGroupName)` Called when a factory is registered to a builder
`boolean` | `onHandleNodeAttributes(FactoryBuilderSupport builder, java.lang.Object node, java.util.Map attributes)` @param builder the FactoryBuilder
`boolean` | `onNodeChildren(FactoryBuilderSupport builder, java.lang.Object node, Closure childContent)` Only called if it isLeaf is false and isHandlesNodeChildren is true
`void` | `onNodeCompleted(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object node)` @param builder the FactoryBuilder
`void` | `setChild(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)`
`void` | `setParent(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)`

Method Detail

### isHandlesNodeChildren

    public boolean isHandlesNodeChildren()

  Does this factory "Own" it's child closure.
  Returns:
    true if the factory should have onContentClosure() called, false if the builder should handle it

### isLeaf

    public boolean isLeaf()

  Returns:
    true if no child closures should be processed

### newInstance

    public java.lang.Object newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes)

  throws:
    InstantiationException if attempting to instantiate an interface or abstract class
  throws:
    IllegalAccessException if the instance can't be created due to a security violation
  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

### onFactoryRegistration

    public 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

### onHandleNodeAttributes

    public 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 standerd bean property matching for the remaining attributes

### onNodeChildren

    public 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

    public 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

### setChild

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

### setParent

    public void setParent(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)

Groovy Documentation