Package groovy.util

Class BuilderSupport

java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.util.BuilderSupport
All Implemented Interfaces:
GroovyObject
Direct Known Subclasses:
AntBuilder, AntBuilder, DOMBuilder, MarkupBuilder, NamespaceBuilderSupport, NodeBuilder, SAXBuilder

public abstract class BuilderSupport
extends GroovyObjectSupport
Base class for creating arbitrary nested trees of objects or events.
  • Constructor Summary

    Constructors
    Constructor Description
    BuilderSupport()  
    BuilderSupport​(Closure nameMappingClosure, BuilderSupport proxyBuilder)  
    BuilderSupport​(BuilderSupport proxyBuilder)  
  • Method Summary

    Modifier and Type Method Description
    protected abstract java.lang.Object createNode​(java.lang.Object name)  
    protected abstract java.lang.Object createNode​(java.lang.Object name, java.lang.Object value)  
    protected abstract java.lang.Object createNode​(java.lang.Object name, java.util.Map attributes)  
    protected abstract java.lang.Object createNode​(java.lang.Object name, java.util.Map attributes, java.lang.Object value)  
    protected java.lang.Object doInvokeMethod​(java.lang.String methodName, java.lang.Object name, java.lang.Object args)  
    protected java.lang.Object getCurrent()  
    protected java.lang.Object getName​(java.lang.String methodName)
    A hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX.
    java.lang.Object invokeMethod​(java.lang.String methodName)
    Convenience method when no arguments are required.
    java.lang.Object invokeMethod​(java.lang.String methodName, java.lang.Object args)
    Invokes the given method.
    protected void nodeCompleted​(java.lang.Object parent, java.lang.Object node)
    A hook to allow nodes to be processed once they have had all of their children applied.
    protected java.lang.Object postNodeCompletion​(java.lang.Object parent, java.lang.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, java.lang.Object node)
    A strategy method to allow derived builders to use builder-trees and switch in different kinds of builders.
    protected void setCurrent​(java.lang.Object current)  
    protected abstract void setParent​(java.lang.Object parent, java.lang.Object child)  

    Methods inherited from class groovy.lang.GroovyObjectSupport

    getMetaClass, setMetaClass

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface groovy.lang.GroovyObject

    getProperty, setProperty
  • Constructor Details

    • BuilderSupport

      public BuilderSupport()
    • BuilderSupport

      public BuilderSupport​(BuilderSupport proxyBuilder)
    • BuilderSupport

      public BuilderSupport​(Closure nameMappingClosure, BuilderSupport proxyBuilder)
  • Method Details

    • getCurrent

      protected java.lang.Object getCurrent()
    • setCurrent

      protected void setCurrent​(java.lang.Object current)
    • invokeMethod

      public java.lang.Object invokeMethod​(java.lang.String methodName)
      Convenience method when no arguments are required.
      Parameters:
      methodName - the name of the method to invoke
      Returns:
      the result of the call
    • invokeMethod

      public java.lang.Object invokeMethod​(java.lang.String methodName, java.lang.Object args)
      Description copied from interface: GroovyObject
      Invokes the given method.
      Parameters:
      methodName - the name of the method to call
      args - the arguments to use for the method call
      Returns:
      the result of invoking the method
    • doInvokeMethod

      protected java.lang.Object doInvokeMethod​(java.lang.String methodName, java.lang.Object name, java.lang.Object args)
    • setClosureDelegate

      protected void setClosureDelegate​(Closure closure, java.lang.Object node)
      A 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).
      Parameters:
      closure - the closure on which to call setDelegate()
      node - the node value that we've just created, which could be a builder
    • setParent

      protected abstract void setParent​(java.lang.Object parent, java.lang.Object child)
    • createNode

      protected abstract java.lang.Object createNode​(java.lang.Object name)
    • createNode

      protected abstract java.lang.Object createNode​(java.lang.Object name, java.lang.Object value)
    • createNode

      protected abstract java.lang.Object createNode​(java.lang.Object name, java.util.Map attributes)
    • createNode

      protected abstract java.lang.Object createNode​(java.lang.Object name, java.util.Map attributes, java.lang.Object value)
    • getName

      protected java.lang.Object getName​(java.lang.String methodName)
      A hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX.
      Parameters:
      methodName - the name of the desired method
      Returns:
      the object representing the name
    • nodeCompleted

      protected void nodeCompleted​(java.lang.Object parent, java.lang.Object node)
      A hook to allow nodes to be processed once they have had all of their children applied.
      Parameters:
      node - the current node being processed
      parent - the parent of the node being processed
    • postNodeCompletion

      protected java.lang.Object postNodeCompletion​(java.lang.Object parent, java.lang.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.
      Parameters:
      node - the current node being processed
      parent - the parent of the node being processed
      Returns:
      the node, possibly new, that represents the markup element