# Package com.saxonica.ee.stream.watch

This package contains defines the two interfaces Watch and WatchMaker, and various implementations of these interfaces.

These classes are used internally by Saxon-EE to support streamed execution. None of these classes is intended for direct use by user applications.

A Watch is used on a streaming pipeline to recognize specific events, such as the start of a selected element, and to take action when these events occur. A WatchMaker is a factory class for creating a particular kind of Watch. The WatchManager is a class that sits on the Receiver pipeline keeping track of which Watches are active, and notifying them of events so that they can decide whether they are of interest.

- Interface Summary
  Interface | Description
  --- | ---
  Watch | A Watch represents a class that is interested in looking at nodes passing down a push pipeline.
  WatchMaker | A WatchMaker is a factory class for creating a `Watch`.

- Class Summary
  Class | Description
  --- | ---
  AbstractWatch | A Watch represents a class that is interested in looking at nodes for the purpose of evaluating uniqueness and key constraints, or for XSLT streaming.
  AccumulatorWatch | This watch implements a single accumulator in streaming mode.
  ApplyImportsAction | Watch for an xsl:apply-imports instruction.
  ApplyTemplatesAction | This watch implements xsl:apply-templates in streaming mode.
  ForEachAction | This watch implements xsl:for-each in streaming mode.
  ForEachGroupParallelAction | This watch implements xsl:for-each-group in streaming mode, in cases where the population is being forked (using group-by), and where the population is not grounded.
  ForEachGroupPartitionAction | This watch implements xsl:for-each-group in streaming mode, in cases where the population is being partitioned (that is, group-adjacent, group-starting-with, and group-ending-with), and where the population is not grounded.
  IterateAction | This watch implements xsl:iterate in streaming mode.
  MultiAccumulatorWatch | This watch managers a set of accumulators in streaming mode.
  NextMatchAction | Watch for an xsl:next-match instruction.
  PatternWatch | A Watch represents a class that is interested in looking at nodes for the purpose of evaluating uniqueness and key constraints, or for XSLT streaming; specifically, an implementation of Watch that retains a Pattern which is evaluated to see whether a particular node matches the Watch.
  StreamWatch |
  Terminator | A Terminator provides a method that can be called to cause early termination of a streaming pass over an input document, in the case where no more information from the document is needed.
  Trigger | A Trigger is a Watch that contains a pattern used for matching streamed nodes, and a WatchAction which is invoked when a matching node is found.
  WatchManager | This class sits on a push pipeline and evaluates the passing element and attribute nodes.
  WatchManager.GroupingScope |