## net.sf.saxon.instruct
Class SlotManager

    java.lang.Object
      |
      +--net.sf.saxon.instruct.SlotManager

All Implemented Interfaces:
  java.io.Serializable

public class SlotManager
extends java.lang.Object
implements java.io.Serializable

A SlotManager supports functions, templates, etc: specifically, any executable code that requires a stack frame containing local variables. In XSLT a SlotManager underpins any top-level element that can contain local variable declarations, specifically, a top-level xsl:template, xsl:variable, xsl:param, or xsl:function element or an xsl:attribute-set element or xsl:key element. In XQuery it underpins functions and global variables. The purpose of the SlotManager is to allocate slot numbers to variables in the stack, and to record how many slots are needed. A Debugger may define a subclass with additional functionality.

See Also:
  Serialized Form

Constructor Summary
`SlotManager()` The constructor should not be called directly.

Method Summary
`int` `allocateSlotNumber(int fingerprint)` Allocate a slot number for a variable
`int` `getNumberOfVariables()` Get number of variables (size of stack frame)
`void` `setNumberOfVariables(int numberOfVariables)` Set the number of variables

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SlotManager

    public SlotManager()

  The constructor should not be called directly. A new SlotManager should be obtained using the factory method in the Configuration object.

Method Detail

### getNumberOfVariables

    public int getNumberOfVariables()

  Get number of variables (size of stack frame)

### setNumberOfVariables

    public void setNumberOfVariables(int numberOfVariables)

  Set the number of variables

  Parameters:
    `numberOfVariables` -

### allocateSlotNumber

    public int allocateSlotNumber(int fingerprint)

  Allocate a slot number for a variable