org.apache.xpath
public class VariableStack extends Object implements Cloneable
This has been changed from the previous incarnations of this class to be fairly low level.
UNKNOWN: internal
Field Summary | |
---|---|
static int | CLEARLIMITATION
limitation for 1K |
Constructor Summary | |
---|---|
VariableStack()
Constructor for a variable stack. |
Method Summary | |
---|---|
void | clearLocalSlots(int start, int len)
Use this to clear the variables in a section of the stack. |
Object | clone()
Returns a clone of this variable stack.
|
XObject | elementAt(int i)
Get the element at the given index, regardless of stackframe.
|
XObject | getGlobalVariable(XPathContext xctxt, int index)
Get a global variable or parameter from the global stack frame.
|
XObject | getGlobalVariable(XPathContext xctxt, int index, boolean destructiveOK)
Get a global variable or parameter from the global stack frame.
|
XObject | getLocalVariable(XPathContext xctxt, int index)
Get a local variable or parameter in the current stack frame.
|
XObject | getLocalVariable(int index, int frame)
Get a local variable or parameter in the current stack frame.
|
XObject | getLocalVariable(XPathContext xctxt, int index, boolean destructiveOK)
Get a local variable or parameter in the current stack frame.
|
int | getStackFrame()
Get the position from where the search should start,
which is either the searchStart property, or the top
of the stack if that value is -1.
|
XObject | getVariableOrParam(XPathContext xctxt, QName qname)
Get a variable based on it's qualified name.
|
boolean | isLocalSet(int index)
Tell if a local variable has been set or not.
|
int | link(int size)
Allocates memory (called a stackframe) on the stack; used to store
local variables and parameter arguments.
|
void | reset()
Reset the stack to a start position.
|
void | setGlobalVariable(int index, XObject val)
Set a global variable or parameter in the global stack frame.
|
void | setLocalVariable(int index, XObject val)
Set a local variable or parameter in the current stack frame.
|
void | setLocalVariable(int index, XObject val, int stackFrame)
Set a local variable or parameter in the specified stack frame.
|
void | setStackFrame(int sf)
Set the current stack frame.
|
int | size()
Get size of the stack.
|
void | unlink()
Free up the stack frame that was last allocated with
VariableStack. |
void | unlink(int currentFrame)
Free up the stack frame that was last allocated with
VariableStack. |
Parameters: start The start position, relative to the current local stack frame. len The number of slots to be cleared.
Returns: a clone of this variable stack.
Throws: CloneNotSupportedException
Parameters: i index from zero.
Returns: The item at the given index.
Parameters: xctxt The XPath context, which must be passed in order to lazy evaluate variables. index Global variable index relative to the global stack frame bottom.
Returns: The value of the variable.
Throws: TransformerException
Parameters: xctxt The XPath context, which must be passed in order to lazy evaluate variables. index Global variable index relative to the global stack frame bottom.
Returns: The value of the variable.
Throws: TransformerException
Parameters: xctxt The XPath context, which must be passed in order to lazy evaluate variables. index Local variable index relative to the current stack frame bottom.
Returns: The value of the variable.
Throws: TransformerException
Parameters: index Local variable index relative to the given frame bottom. NEEDSDOC @param frame
Returns: The value of the variable.
Throws: TransformerException
Parameters: xctxt The XPath context, which must be passed in order to lazy evaluate variables. index Local variable index relative to the current stack frame bottom.
Returns: The value of the variable.
Throws: TransformerException
Returns: The current stack frame position.
Parameters: xctxt The XPath context, which must be passed in order to lazy evaluate variables. qname The qualified name of the variable.
Returns: The evaluated value of the variable.
Throws: javax.xml.transform.TransformerException
Parameters: index Local variable index relative to the current stack frame bottom.
Returns: true if the value at the index is not null.
Throws: TransformerException
I use the link/unlink concept because of distant Motorola 68000 assembler memories.
Parameters: size The size of the stack frame allocation. This ammount should normally be the maximum number of variables that you can have allocated at one time in the new stack frame.
Returns: The bottom of the stack frame, from where local variable addressing should start from.
Returns: the total size of the execution stack.
Parameters: index Local variable index relative to the global stack frame bottom. val The value of the variable that is being set.
Parameters: index Local variable index relative to the current stack frame bottom. val The value of the variable that is being set.
Parameters: index Local variable index relative to the current stack frame bottom. NEEDSDOC @param stackFrame val The value of the variable that is being set.
Parameters: sf The new stack frame position.
Returns: the total size of the execution stack.
Parameters: currentFrame The current frame to set to after the unlink.