net.sf.saxon.sxpath

Class XPathDynamicContext


public class XPathDynamicContext
extends java.lang.Object

This object represents the dynamic XPath execution context for use in the free-standing Saxon XPath API. The dynamic context holds the context item and the values of external variables used by the XPath expression.

This object is always created via the method XPathExpression.createDynamicContext(Item)

Constructor Summary

XPathDynamicContext(XPathContextMajor contextObject)

Method Summary

protected void
checkExternalVariables(SlotManager stackFrameMap, int numberOfExternals)
Check that all external variables have been given a value
Item
getContextItem()
Get the context item
protected XPathContext
getXPathContextObject()
For system use: get the wrapped XPathContext object
void
setContextItem(Item item)
Set the context item for evaluation of the XPath Expression
void
setContextNode(Source source)
Set the context item to a node derived from a supplied Source object.
void
setVariable(XPathVariable variable, ValueRepresentation value)
Set the value of an external variable used within the XPath expression

Constructor Details

XPathDynamicContext

protected XPathDynamicContext(XPathContextMajor contextObject)

Method Details

checkExternalVariables

protected void checkExternalVariables(SlotManager stackFrameMap,
                                      int numberOfExternals)
            throws XPathException
Check that all external variables have been given a value
Parameters:
stackFrameMap - describes the stack frame
numberOfExternals - the number of variables that need to be supplied
Throws:
XPathException - if required variables have not been given a value

getContextItem

public Item getContextItem()
Get the context item
Returns:
the context item if there is one, or null otherwise

getXPathContextObject

protected XPathContext getXPathContextObject()
For system use: get the wrapped XPathContext object
Returns:
the XPathContext object

setContextItem

public void setContextItem(Item item)
            throws XPathException
Set the context item for evaluation of the XPath Expression
Parameters:
item - the context item
Throws:
XPathException - if the node is in a document that was built under the wrong configuration

setContextNode

public void setContextNode(Source source)
            throws XPathException
Set the context item to a node derived from a supplied Source object. This may be any implementation of the Source interface recognized by Saxon. Note that the Saxon NodeInfo interface, representing a node in a tree, is one such implementation; others include javax.xml.transform.stream.StreamSource, javax.xml.transform.sax.SAXSource, and javax.xml.transform.dom.DOMSource
Parameters:
source - The source object representing the node that will be used as the context item
Throws:
XPathException - if a failure occurs reading or parsing a Source object to build an input tree, or if the source is a document that was built under the wrong configuration

setVariable

public void setVariable(XPathVariable variable,
                        ValueRepresentation value)
            throws XPathException
Set the value of an external variable used within the XPath expression
Parameters:
variable - the object representing the variable, as returned by the XPathEvaluator.declareVariable(String,String) method. Note that setting the value of a variable does not modify the XPathVariable object itself, which means that this method is thread-safe.
value - The value of the variable.
Throws:
XPathException - if the supplied value does not conform to the required type of the variable