public abstract class BuilderSupport
extends GroovyObjectSupport
Base class for creating arbitrary nested trees of objects or events.
| Constructor and description |
|---|
BuilderSupport()Creates a builder that manages its own node lifecycle. |
BuilderSupport(BuilderSupport proxyBuilder)Creates a builder that delegates node operations to another builder. |
BuilderSupport(Closure nameMappingClosure, BuilderSupport proxyBuilder)Creates a builder with custom name mapping and delegated node operations. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
protected abstract Object |
createNode(Object name)Creates a node with the given name. |
|
protected abstract Object |
createNode(Object name, Object value)Creates a node with the given name and value. |
|
protected abstract Object |
createNode(Object name, Map attributes)Creates a node with the given name and attributes. |
|
protected abstract Object |
createNode(Object name, Map attributes, Object value)Creates a node with the given name, attributes, and value. |
|
protected Object |
doInvokeMethod(String methodName, Object name, Object args)Creates a node for the given method invocation and processes any child closure. |
|
protected Object |
getCurrent()Returns the current node on the builder stack. |
|
protected Object |
getName(String methodName)A hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX. |
|
public Object |
invokeMethod(String methodName)Convenience method when no arguments are required. |
|
public Object |
invokeMethod(String methodName, Object args)Invokes the given method.
|
|
protected void |
nodeCompleted(Object parent, Object node)A hook to allow nodes to be processed once they have had all of their children applied. |
|
protected Object |
postNodeCompletion(Object parent, Object node)A hook to allow nodes to be processed once they have had all of their children applied and allows the actual node object that represents the Markup element to be changed. |
|
protected void |
setClosureDelegate(Closure closure, Object node)A strategy method to allow derived builders to use builder-trees and switch in different kinds of builders. |
|
protected void |
setCurrent(Object current)Updates the current node on the builder stack. |
|
protected abstract void |
setParent(Object parent, Object child)Links a newly created child node to its parent. |
| Methods inherited from class | Name |
|---|---|
class GroovyObjectSupport |
getMetaClass, setMetaClass |
Creates a builder that manages its own node lifecycle.
Creates a builder that delegates node operations to another builder.
proxyBuilder - the builder handling node creation callbacksCreates a builder with custom name mapping and delegated node operations.
nameMappingClosure - converts method names before node creationproxyBuilder - the builder handling node creation callbacksCreates a node with the given name.
name - the node nameCreates a node with the given name and value.
name - the node namevalue - the node valueCreates a node with the given name and attributes.
name - the node nameattributes - the node attributesCreates a node with the given name, attributes, and value.
name - the node nameattributes - the node attributesvalue - the node valueCreates a node for the given method invocation and processes any child closure.
methodName - the original method namename - the mapped node nameargs - the invocation argumentsReturns the current node on the builder stack.
null if none is activeA hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX.
methodName - the name of the desired methodConvenience method when no arguments are required.
methodName - the name of the method to invokeInvokes the given method.
name - the name of the method to callargs - the arguments to use for the method callA hook to allow nodes to be processed once they have had all of their children applied.
node - the current node being processedparent - the parent of the node being processedA hook to allow nodes to be processed once they have had all of their children applied and allows the actual node object that represents the Markup element to be changed.
node - the current node being processedparent - the parent of the node being processedA strategy method to allow derived builders to use builder-trees and switch in different kinds of builders. This method should call the setDelegate() method on the closure which by default passes in this but if node is-a builder we could pass that in instead (or do something wacky too).
closure - the closure on which to call setDelegate()node - the node value that we've just created, which could be
a builderUpdates the current node on the builder stack.
current - the current nodeCopyright © 2003-2026 The Apache Software Foundation. All rights reserved.