Package net.sf.saxon.event

## Class BuilderMonitor

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - net.sf.saxon.event.BuilderMonitor

- All Implemented Interfaces:
    `javax.xml.transform.Result`, `Receiver`
  Direct Known Subclasses:
    `LinkedBuilderMonitor`, `TinyBuilderMonitor`

      public abstract class BuilderMonitor
      extends ProxyReceiver

  A BuilderMonitor can be inserted into a pipeline immediately in front of a Builder. During tree construction, the method markNextNode() can be called to request that the next node to be created is treated specially by remembering the current position on the tree; on completion of the tree construction, the method getMarkedNode() can be called to return the NodeInfo that was created immediately after calling markNextNode().

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.event.ProxyReceiver

      `nextReceiver`

    - ### Fields inherited from class net.sf.saxon.event.SequenceReceiver

      `pipelineConfiguration, previousAtomic, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BuilderMonitor​(Receiver next)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract NodeInfo` | `getMarkedNode()` | On completion of tree building, get the node that was marked using markNextNode().
    `abstract void` | `markNextNode​(int nodeKind)` | Indicate that the next node to be created will be of a given type, and request the monitor to remember the identity of this node.

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `append, characters, close, comment, endDocument, endElement, getNamePool, getNextReceiver, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, startElement, usesTypeAnnotations`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### BuilderMonitor

          public BuilderMonitor​(Receiver next)

  - ### Method Detail

    - #### markNextNode

          public abstract void markNextNode​(int nodeKind)

      Indicate that the next node to be created will be of a given type, and request the monitor to remember the identity of this node.
      Parameters:
        `nodeKind` - the kind of node that will be created next. This will always be an element, text, comment, or processing-instruction node

    - #### getMarkedNode

          public abstract NodeInfo getMarkedNode()

      On completion of tree building, get the node that was marked using markNextNode().
      Returns:
        the marked node, or null if none was marked