Package net.sf.saxon.expr

## Interface ComponentInvocation

- All Known Implementing Classes:
    `ApplyTemplates`, `CallTemplate`, `GlobalVariableReference`, `UseAttributeSet`, `UserFunctionCall`, `UserFunctionReference`

      public interface ComponentInvocation

  Represents an expression or instruction such as call-template, or a user function call, or a global variable reference, that needs to be bound to a target component, and can potentially be re-bound when the containing component is copied into another package.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getBindingSlot()` | Get the binding slot to be used.
    `Component` | `getFixedTarget()` | Get the target component if this is known in advance, that is, if the target component is private or final, or in some other cases such as xsl:original.
    `SymbolicName` | `getSymbolicName()` | Get the symbolic name of the component that this invocation references
    `void` | `setBindingSlot​(int slot)` | Set the binding slot to be used.

- - ### Method Detail

    - #### getFixedTarget

          Component getFixedTarget()

      Get the target component if this is known in advance, that is, if the target component is private or final, or in some other cases such as xsl:original. Otherwise, return null.
      Returns:
        the bound component if the binding has been fixed

    - #### setBindingSlot

          void setBindingSlot​(int slot)

      Set the binding slot to be used. This is the offset within the binding vector of the containing component where the actual target component is to be found. The target template is not held directly in the invocation instruction/expression itself because it can be overridden in a using package.
      Parameters:
        `slot` - the offset in the binding vector of the containing package where the target component can be found.

    - #### getBindingSlot

          int getBindingSlot()

      Get the binding slot to be used. This is the offset within the binding vector of the containing component where the actual target component is to be found.
      Returns:
        the offset in the binding vector of the containing package where the target component can be found.

    - #### getSymbolicName

          SymbolicName getSymbolicName()

      Get the symbolic name of the component that this invocation references
      Returns:
        the symbolic name of the target component, or null if there is no component referenced