Package groovy.util
Interface Factory
- All Known Implementing Classes:
AbstractFactory
,CustomizersFactory
,ImportCustomizerFactory
,InlinedASTCustomizerFactory
,SecureASTCustomizerFactory
,SourceAwareCustomizerFactory
public interface Factory
-
Method Summary
Modifier and Type Method Description boolean
isHandlesNodeChildren()
Does this factory "Own" its child closure.boolean
isLeaf()
java.lang.Object
newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes)
void
onFactoryRegistration(FactoryBuilderSupport builder, java.lang.String registeredName, java.lang.String registeredGroupName)
Called when a factory is registered to a builderboolean
onHandleNodeAttributes(FactoryBuilderSupport builder, java.lang.Object node, java.util.Map attributes)
boolean
onNodeChildren(FactoryBuilderSupport builder, java.lang.Object node, Closure childContent)
Only called if it isLeaf is false and isHandlesNodeChildren is truevoid
onNodeCompleted(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object node)
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 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 toregisteredName
- 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 FactoryBuildername
- the name of the node being builtvalue
- the 'value' argument in the build nodeattributes
- 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 classjava.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 FactoryBuildernode
- the node (returned from newINstance) to consider the attributes forattributes
- the attributes, a mutable set- Returns:
- true if the factory builder should use standard bean property matching for the remaining attributes
-
onNodeChildren
Only called if it isLeaf is false and isHandlesNodeChildren is true- Parameters:
builder
- the FactoryBuildernode
- the node (returned from newINstance) to consider the attributes forchildContent
- 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 FactoryBuilderparent
- the parent node (null if 'root')node
- the node just completed
-
setParent
-
setChild
-