groovy.util
Interface Factory

All Known Implementing Classes:
AbstractFactory

public interface Factory

Author:
Andres Almiray , Danno Ferrin

Method Summary
 boolean isHandlesNodeChildren()
          Does this factory "Own" it's child closure.
 boolean isLeaf()
           
 Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes)
           
 void onFactoryRegistration(FactoryBuilderSupport builder, String registerdName, String registeredGroupName)
          Called when a factory is registerd 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)
           
 

Method Detail

isLeaf

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

isHandlesNodeChildren

boolean isHandlesNodeChildren()
Does this factory "Own" it's child closure.

Returns:
true if the factory should have onContentClosure() called, false if the builder shouold handle it

onFactoryRegistration

void onFactoryRegistration(FactoryBuilderSupport builder,
                           String registerdName,
                           String registeredGroupName)
Called when a factory is registerd to a builder

Parameters:
builder - the build the factory has been registered to
registerdName - the name the factory has been registerd under

newInstance

Object newInstance(FactoryBuilderSupport builder,
                   Object name,
                   Object value,
                   Map attributes)
                   throws InstantiationException,
                          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:
InstantiationException - if attempting to instantiate an interface or abstract class
IllegalAccessException - if the instance can't be created due to a security violation

onHandleNodeAttributes

boolean onHandleNodeAttributes(FactoryBuilderSupport builder,
                               Object node,
                               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

boolean onNodeChildren(FactoryBuilderSupport builder,
                       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,
                     Object parent,
                     Object node)
Parameters:
builder - the FactoryBuilder
parent - the parent node (null if 'root')
node - the node just completed

setParent

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

setChild

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

Copyright © 2003-2010 The Codehaus. All rights reserved.