net.sf.saxon.expr.instruct

## Class NextMatch

- java.lang.Object
- - net.sf.saxon.expr.Expression
  - - net.sf.saxon.expr.instruct.Instruction
    - - net.sf.saxon.expr.instruct.ApplyImports
      - - net.sf.saxon.expr.instruct.NextMatch

- All Implemented Interfaces:
    Serializable, SourceLocator, LocationProvider, SaxonLocator, ITemplateCall, TailCallReturner, InstructionInfo, Locator

      public class NextMatch
      extends ApplyImports

  An xsl:next-match element in the stylesheet
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.expr.Expression

      `EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NextMatch(boolean useTailRecursion)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Expression` | `copy()` Copy an expression.
    `void` | `explain(ExpressionPresenter out)` Diagnostic print of expression structure.
    `ExpressionCompiler` | `getExpressionCompiler()` Return the compiler of the NextMatch expression
    `int` | `getInstructionNameCode()` Get the name of this instruction for diagnostic and tracing purposes
    `NextMatchAdjunct` | `getStreamingAdjunct()` Get a class that supports streamed evaluation of this expression
    `TailCall` | `processLeavingTail(XPathContext context)` ProcessLeavingTail: called to do the real work of this instruction.

    - ### Methods inherited from class net.sf.saxon.expr.instruct.ApplyImports

      `addToPathMap, createsNewNodes, getActualParams, getImplementationMethod, getIntrinsicDependencies, getStreamability, getTunnelParams, isAllowAnyItem, iterateSubExpressions, optimize, promoteInst, replaceSubExpression, setActualParameters, simplify, typeCheck`

    - ### Methods inherited from class net.sf.saxon.expr.instruct.Instruction

      `assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, dynamicError, evaluateAsString, evaluateItem, getConstructType, getExpressionName, getInstructionName, getItemType, getIteratorFromProcessMethod, getSourceLocator, isXSLT, iterate, process, promote`

    - ### Methods inherited from class net.sf.saxon.expr.Expression

      `adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntegerBounds, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSubExpressionInfo, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, toString, typeError`

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

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

    - ### Methods inherited from interface javax.xml.transform.SourceLocator

      `getColumnNumber, getLineNumber, getPublicId, getSystemId`

- - ### Constructor Detail

    - #### NextMatch

          public NextMatch(boolean useTailRecursion)

  - ### Method Detail

    - #### getInstructionNameCode

          public int getInstructionNameCode()

      Get the name of this instruction for diagnostic and tracing purposes
      Overrides:
        `getInstructionNameCode` in class `ApplyImports`
      Returns:
        a code identifying the instruction: typically but not always the fingerprint of a name in the XSLT namespace

    - #### copy

          public Expression copy()

      Copy an expression. This makes a deep copy.
      Overrides:
        `copy` in class `ApplyImports`
      Returns:
        the copy of the original expression

    - #### processLeavingTail

          public TailCall processLeavingTail(XPathContext context)
                                      throws XPathException

      Description copied from class: `Instruction`
      ProcessLeavingTail: called to do the real work of this instruction. This method must be implemented in each subclass. The results of the instruction are written to the current Receiver, which can be obtained via the Controller.
      Specified by:
        `processLeavingTail` in interface `TailCallReturner`
      Overrides:
        `processLeavingTail` in class `ApplyImports`
      Parameters:
        `context` - The dynamic context of the transformation, giving access to the current node, the current variables, etc.
      Returns:
        null if the instruction has completed execution; or a TailCall indicating a function call or template call that is delegated to the caller, to be made after the stack has been unwound so as to save stack space.
      Throws:
        `XPathException` - if a dynamic error occurs during the evaluation of the instruction

    - #### explain

          public void explain(ExpressionPresenter out)

      Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.
      Overrides:
        `explain` in class `ApplyImports`
      Parameters:
        `out` - the expression presenter used to display the structure

    - #### getExpressionCompiler

          public ExpressionCompiler getExpressionCompiler()

      Return the compiler of the NextMatch expression
      Overrides:
        `getExpressionCompiler` in class `ApplyImports`
      Returns:
        the relevant ExpressionCompiler

    - #### getStreamingAdjunct

          public NextMatchAdjunct getStreamingAdjunct()

      Description copied from class: `Expression`
      Get a class that supports streamed evaluation of this expression
      Overrides:
        `getStreamingAdjunct` in class `ApplyImports`
      Returns:
        the relevant StreamingAdjunct, or null if none is available

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.