net.sf.saxon.instruct

Class SlotManager

public class SlotManager extends Object implements 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.
Constructor Summary
SlotManager()
The constructor should not be called directly.
Method Summary
intallocateSlotNumber(int fingerprint)
Allocate a slot number for a variable
intgetNumberOfVariables()
Get number of variables (size of stack frame)
ListgetVariableMap()
Get the variable map (simply a list of fingerprints of the variable names).
voidsetNumberOfVariables(int numberOfVariables)
Set the number of variables

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

allocateSlotNumber

public int allocateSlotNumber(int fingerprint)
Allocate a slot number for a variable

getNumberOfVariables

public int getNumberOfVariables()
Get number of variables (size of stack frame)

getVariableMap

public List getVariableMap()
Get the variable map (simply a list of fingerprints of the variable names). Note that it is possible for several variables to have the same name.

setNumberOfVariables

public void setNumberOfVariables(int numberOfVariables)
Set the number of variables

Parameters: numberOfVariables