Class AccumulatorRegistry

java.lang.Object
net.sf.saxon.expr.accum.AccumulatorRegistry
Direct Known Subclasses:
AccumulatorRegistryEE

public class AccumulatorRegistry extends Object
Static registry for accumulators (XSLT 3.0) defined within a single package. Generally accessed via the PackageData object for the package.
  • Field Details

  • Constructor Details

    • AccumulatorRegistry

      public AccumulatorRegistry()
  • Method Details

    • getUsedAccumulators

      public Set<Accumulator> getUsedAccumulators(String useAccumulatorsAtt, StyleElement styleElement)
      Process the use-accumulators attribute of instructions such as xsl:stream, xsl:mode, etc
      Parameters:
      useAccumulatorsAtt - the value of the use-accumulators attribute
      styleElement - the element on which the use-accumulators attribute appears
      Returns:
      the list of accumulators referenced
    • addAccumulator

      public void addAccumulator(Accumulator acc)
      Register an accumulator
      Parameters:
      acc - the accumulator to be registered
    • getAccumulator

      public Accumulator getAccumulator(StructuredQName name)
      Get the accumulator with a given name
      Parameters:
      name - the name of the accumulator
      Returns:
      the accumulator with this name
    • getAllAccumulators

      public Iterable<Accumulator> getAllAccumulators()
      Get all the registered accumulators
      Returns:
      a collection of accumulators
    • getStreamingAccumulatorValue

      public Sequence getStreamingAccumulatorValue(NodeInfo node, Accumulator accumulator, AccumulatorFn.Phase phase) throws XPathException
      Get the run-time value of a streamed accumulator
      Parameters:
      node - the context node, which must be a streamed node
      accumulator - the accumulator whose value is required
      phase - pre-descent or post-descent
      Returns:
      the value of the accumulator, or null if the context node is not streamed
      Throws:
      XPathException - if a dynamic error occurs