Class MultithreadedForEach

All Implemented Interfaces:
ContextOriginator, ContextSwitchingExpression, ExportAgent, Locatable, IdentityComparable, Traceable

public class MultithreadedForEach extends ForEach
This instruction represents an xsl:for-each instruction using more than one thread
  • Constructor Details

  • Method Details

    • isMultiThreaded

      public boolean isMultiThreaded(Configuration config)
      Description copied from class: Expression
      Ask whether the expression is multithreaded (that is, whether its operands are evaluated in parallel)
      Overrides:
      isMultiThreaded in class Expression
      Parameters:
      config - the Saxon configuration
      Returns:
      true if execution will be multithreaded
    • optimize

      public Expression optimize(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException
      Description copied from class: Expression
      Perform optimisation of an expression and its subexpressions. This is the third and final phase of static optimization.

      This method is called after all references to functions and variables have been resolved to the declaration of the function or variable, and after all type checking has been done.

      Overrides:
      optimize in class ForEach
      Parameters:
      visitor - an expression visitor
      contextInfo - the static type of "." at the point where this expression is invoked. The parameter is set to null if it is known statically that the context item will be undefined. If the type of the context item is not known statically, the argument is set to Type.ITEM_TYPE
      Returns:
      the original expression, rewritten if appropriate to optimize execution
      Throws:
      XPathException - if an error is discovered during this phase (typically a type error)
    • copy

      public Expression copy(RebindingMap rebindings)
      Description copied from class: ForEach
      Copy an expression. This makes a deep copy.
      Overrides:
      copy in class ForEach
      Parameters:
      rebindings - variables that need to be re-bound
      Returns:
      the copy of the original expression
    • getImplementationMethod

      public int getImplementationMethod()
      An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is provided. This implementation provides only the process() method natively.
      Overrides:
      getImplementationMethod in class ForEach
      Returns:
      the implementation method, for example Expression.ITERATE_METHOD or Expression.EVALUATE_METHOD or Expression.PROCESS_METHOD
    • iterate

      public SequenceIterator iterate(XPathContext context) throws XPathException
      Return an Iterator to iterate over the values of the sequence.
      Overrides:
      iterate in class ForEach
      Parameters:
      context - supplies the context for evaluation
      Returns:
      a SequenceIterator that can be used to iterate over the result of the expression
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • getExpressionName

      public String getExpressionName()
      Get a name identifying the kind of expression, in terms meaningful to a user.
      Overrides:
      getExpressionName in class ForEach
      Returns:
      a name identifying the kind of expression, in terms meaningful to a user. The name will always be in the form of a lexical XML QName, and should match the name used in explain() output displaying the expression.
    • explainThreads

      protected void explainThreads(ExpressionPresenter out) throws XPathException
      Add the value of the saxon:threads attribute to the explain output
      Overrides:
      explainThreads in class ForEach
      Parameters:
      out - the destination for explain output
      Throws:
      XPathException
    • getElaborator

      public Elaborator getElaborator()
      Make an elaborator for this expression
      Overrides:
      getElaborator in class ForEach
      Returns:
      a suitable elaborator