Class CurrentMergeGroup

All Implemented Interfaces:
Callable, FunctionItem, GroundedValue, Item, Sequence

public class CurrentMergeGroup extends SystemFunction
Implements the XSLT 3.0 function current-merge-group()
  • Constructor Details

    • CurrentMergeGroup

      public CurrentMergeGroup()
  • Method Details

    • setControllingInstruction

      public void setControllingInstruction(MergeInstr instruction, boolean isInLoop)
      Set the containing xsl:merge instruction, if there is one
      Parameters:
      instruction - the (innermost) containing xsl:merge instruction
      isInLoop - true if the current-merge-group() expression is evaluated more than once during evaluation of the body of the xsl:merge instruction
    • getControllingInstruction

      public MergeInstr getControllingInstruction()
      Get the innermost containing xsl:merge instruction, if there is one
      Returns:
      the innermost containing xsl:merge instruction
    • isInLoop

      public boolean isInLoop()
      Determine whether the current-group() function is executed repeatedly within a single iteration of the containing xsl:for-each-group
      Returns:
      true if it is evaluated repeatedly
    • getResultItemType

      public ItemType getResultItemType()
      Determine the item type of the value returned by the function
      Overrides:
      getResultItemType in class SystemFunction
      Returns:
      the item type of the result
    • getSpecialProperties

      public int getSpecialProperties(Expression[] arguments)
      Determine the special properties of this expression.
      Overrides:
      getSpecialProperties in class SystemFunction
      Parameters:
      arguments - the actual arguments supplied to the function call
      Returns:
      StaticProperty.NO_NODES_NEWLY_CREATED (unless the variable is assignable using saxon:assign)
    • makeFunctionCall

      public Expression makeFunctionCall(Expression... arguments)
      Make an expression that either calls this function, or that is equivalent to a call on this function
      Overrides:
      makeFunctionCall in class SystemFunction
      Parameters:
      arguments - the supplied arguments to the function call
      Returns:
      either a function call on this function, or an expression that delivers the same result
    • call

      public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException
      Evaluate the expression
      Parameters:
      context - the dynamic evaluation context
      arguments - the values of the arguments, supplied as SequenceIterators
      Returns:
      the result of the evaluation, in the form of a SequenceIterator
      Throws:
      XPathException - if a dynamic error occurs during the evaluation of the expression
    • getStreamerName

      public String getStreamerName()
      Description copied from class: SystemFunction
      Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser. Special streaming support is generally available in Saxon-EE for all system functions that take a sequence as their argument.
      Overrides:
      getStreamerName in class SystemFunction
      Returns:
      a name that identifies a class that supports streamed evaluation of this system function, or null if no such class is available. The mapping of names to classes is defined in the Saxon-EE class StreamerMap. In non-streaming Saxon editions (HE and PE) the method always returns null.