com.icl.saxon

Class Context

public final class Context extends Object implements XSLTContext, LastPositionFinder

This class represents a context in which an expression is evaluated or a template is executed (as defined in the XSLT specification). It also provides a range of services to node handlers, for example access to the outputter and bindery, and the applyTemplates() function.
Field Summary
static intALL_DEPENDENCIES
static intCONTEXT_DOCUMENT
static intCONTEXT_NODE
static intCONTROLLER
static intCURRENT_NODE
static intLAST
static intNO_DEPENDENCIES
static intPOSITION
static intVARIABLES
static intXSLT_CONTEXT
Constructor Summary
Context()
The default constructor is not used within Saxon itself, but is available to applications (and is used in some samples).
Context(Controller c)
Constructor should only be called by the Controller, which acts as a Context factory.
Method Summary
BinderygetBindery()
Get the Bindery used by this Context
NodegetContextNode()
Get the context node, provided it is a DOM Node
NodeInfogetContextNodeInfo()
Get the context node
intgetContextPosition()
Get the context position (the position of the context node in the context node list)
intgetContextSize()
Get the context size (the position of the last item in the current node list).
ControllergetController()
Get the controller for this Context
NodegetCurrentNode()
Get the current node,provided it is a DOM Node.
NodeInfogetCurrentNodeInfo()
Get the current node.
XSLTemplategetCurrentTemplate()
Get the current template.
XPathExceptiongetException()
Get the saved exception value.
StackgetGroupActivationStack()
Get the saxon:group activation stack
intgetLast()
Get the context size (the position of the last item in the current node list)
intgetLastPosition()
Get the last position, to be used only when the context object is being used as the last position finder
ModegetMode()
Get the current mode (for use by the built-in handlers)
OutputtergetOutputter()
Get the current Outputter.
DocumentgetOwnerDocument()
Get owner Document (enabling extension functions to create new Nodes)
intgetRememberedNumber(NodeInfo node)
Get the number of a node if it is the last remembered one.
ValuegetReturnValue()
Get the return value from function
StaticContextgetStaticContext()
Get the static context.
ParameterSetgetTailRecursion()
Get tail recursion parameters
booleanisAtLast()
Determine whether the context position is the same as the context size that is, whether position()=last()
ContextnewContext()
Construct a new context as a copy of another
voidsetContextNode(NodeInfo node)
Set the context node.
voidsetController(Controller c)
Set the controller for this Context
voidsetCurrentNode(NodeInfo node)
Set the current node.
voidsetCurrentTemplate(XSLTemplate template)
Set the current template.
voidsetException(XPathException err)
Set an exception value.
voidsetLast(int last)
Set the context size; this also makes the Context object responisble for returning the last() position.
voidsetLastPositionFinder(LastPositionFinder finder)
Set the LastPositionFinder, another object that will do the work of returning the last() position
voidsetMode(Mode mode)
Set the mode (for use by the built-in handlers)
voidsetPosition(int pos)
Set the context position
voidsetRememberedNumber(NodeInfo node, int number)
Set the last remembered node, for node numbering purposes
voidsetReturnValue(Value value)
Set return value from function
voidsetStaticContext(StaticContext sc)
Set the static context
voidsetTailRecursion(ParameterSet p)
Set tail recursion parameters
StringstringValue(Node n)
Return the String value of a node
ObjectsystemProperty(String namespaceURI, String localName)
Get the value of a system property

Field Detail

ALL_DEPENDENCIES

public static final int ALL_DEPENDENCIES

CONTEXT_DOCUMENT

public static final int CONTEXT_DOCUMENT

CONTEXT_NODE

public static final int CONTEXT_NODE

CONTROLLER

public static final int CONTROLLER

CURRENT_NODE

public static final int CURRENT_NODE

LAST

public static final int LAST

NO_DEPENDENCIES

public static final int NO_DEPENDENCIES

POSITION

public static final int POSITION

VARIABLES

public static final int VARIABLES

XSLT_CONTEXT

public static final int XSLT_CONTEXT

Constructor Detail

Context

public Context()
The default constructor is not used within Saxon itself, but is available to applications (and is used in some samples). Because some expressions (for example union expressions) cannot execute without a Controller, a system default Controller is created. This is a quick fix, but is not entirely satisfactory, because it's not thread-safe. Applications are encouraged to create a Controller explicitly and use it only within a single thread.

Context

public Context(Controller c)
Constructor should only be called by the Controller, which acts as a Context factory.

Method Detail

getBindery

public Bindery getBindery()
Get the Bindery used by this Context

getContextNode

public Node getContextNode()
Get the context node, provided it is a DOM Node

Returns: the context node if it is a DOM Node, otherwise null

getContextNodeInfo

public NodeInfo getContextNodeInfo()
Get the context node

Returns: the context node

getContextPosition

public int getContextPosition()
Get the context position (the position of the context node in the context node list)

Returns: the context position (starting at one)

getContextSize

public int getContextSize()
Get the context size (the position of the last item in the current node list). This is the XSLTContext method: it differs from getLast() in that it cannot throw an exception. This method should be called only from within extension functions. If any error occurs, it will be accessible via Context#getException().

Returns: the context size

getController

public Controller getController()
Get the controller for this Context

getCurrentNode

public Node getCurrentNode()
Get the current node,provided it is a DOM Node. This is the node in the source document currently being processed (e.g. by apply-templates). It is not necessarily the same as the context node: the context node can change in a sub-expression, the current node cannot.

Returns: the current node if it is a DOM Node; otherwise null.

getCurrentNodeInfo

public NodeInfo getCurrentNodeInfo()
Get the current node. This is the node in the source document currently being processed (e.g. by apply-templates). It is not necessarily the same as the context node: the context node can change in a sub-expression, the current node cannot.

getCurrentTemplate

public XSLTemplate getCurrentTemplate()
Get the current template. This is used to support xsl:apply-imports

getException

public XPathException getException()
Get the saved exception value.

getGroupActivationStack

public Stack getGroupActivationStack()
Get the saxon:group activation stack

getLast

public int getLast()
Get the context size (the position of the last item in the current node list)

Returns: the context size

getLastPosition

public int getLastPosition()
Get the last position, to be used only when the context object is being used as the last position finder

getMode

public Mode getMode()
Get the current mode (for use by the built-in handlers)

getOutputter

public Outputter getOutputter()
Get the current Outputter. This gives access to the writeStartTag, writeAttribute, and writeEndTag methods

Returns: the current Outputter

getOwnerDocument

public Document getOwnerDocument()
Get owner Document (enabling extension functions to create new Nodes)

getRememberedNumber

public int getRememberedNumber(NodeInfo node)
Get the number of a node if it is the last remembered one.

Returns: the number of this node if known, else -1.

getReturnValue

public Value getReturnValue()
Get the return value from function

getStaticContext

public StaticContext getStaticContext()
Get the static context. This is currently available only while processing an extension function

getTailRecursion

public ParameterSet getTailRecursion()
Get tail recursion parameters

isAtLast

public boolean isAtLast()
Determine whether the context position is the same as the context size that is, whether position()=last()

newContext

public Context newContext()
Construct a new context as a copy of another

setContextNode

public void setContextNode(NodeInfo node)
Set the context node.
Note that this has no effect on position() or last(), which must be set separately.

Parameters: node the node that is to be the context node.

setController

public void setController(Controller c)
Set the controller for this Context

setCurrentNode

public void setCurrentNode(NodeInfo node)
Set the current node. This is the node in the source document currently being processed (e.g. by apply-templates).

setCurrentTemplate

public void setCurrentTemplate(XSLTemplate template)
Set the current template. This is used to support xsl:apply-imports

setException

public void setException(XPathException err)
Set an exception value. This is useful when an extension function makes a call such as getContextSize() that causes an error. The error is saved as part of the context, and reported on return from the extension function

setLast

public void setLast(int last)
Set the context size; this also makes the Context object responisble for returning the last() position.

setLastPositionFinder

public void setLastPositionFinder(LastPositionFinder finder)
Set the LastPositionFinder, another object that will do the work of returning the last() position

setMode

public void setMode(Mode mode)
Set the mode (for use by the built-in handlers)

setPosition

public void setPosition(int pos)
Set the context position

setRememberedNumber

public void setRememberedNumber(NodeInfo node, int number)
Set the last remembered node, for node numbering purposes

setReturnValue

public void setReturnValue(Value value)
Set return value from function

setStaticContext

public void setStaticContext(StaticContext sc)
Set the static context

setTailRecursion

public void setTailRecursion(ParameterSet p)
Set tail recursion parameters

stringValue

public String stringValue(Node n)
Return the String value of a node

Throws: IllegalArgumentException if it is not a Saxon node

systemProperty

public Object systemProperty(String namespaceURI, String localName)
Get the value of a system property