Package com.icl.saxon

Class Context

  • All Implemented Interfaces:
    LastPositionFinder, XSLTContext

    public final class Context
    extends java.lang.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.
    • 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

      • newContext

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

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

        public Controller getController()
        Get the controller for this Context
      • getBindery

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

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

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

        public Mode getMode()
        Get the current mode (for use by the built-in handlers)
      • 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.
      • getContextNodeInfo

        public NodeInfo getContextNodeInfo()
        Get the context node
        Returns:
        the context node
      • getContextNode

        public org.w3c.dom.Node getContextNode()
        Get the context node, provided it is a DOM Node
        Specified by:
        getContextNode in interface XSLTContext
        Returns:
        the context node if it is a DOM Node, otherwise null
      • setPosition

        public void setPosition​(int pos)
        Set the context position
      • getContextPosition

        public int getContextPosition()
        Get the context position (the position of the context node in the context node list)
        Specified by:
        getContextPosition in interface XSLTContext
        Returns:
        the context position (starting at one)
      • 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
      • getLast

        public int getLast()
                    throws XPathException
        Get the context size (the position of the last item in the current node list)
        Returns:
        the context size
        Throws:
        XPathException
      • isAtLast

        public boolean isAtLast()
                         throws XPathException
        Determine whether the context position is the same as the context size that is, whether position()=last()
        Throws:
        XPathException
      • 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().
        Specified by:
        getContextSize in interface XSLTContext
        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
        Specified by:
        getLastPosition in interface LastPositionFinder
      • 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).
      • 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.
      • getCurrentNode

        public org.w3c.dom.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.
        Specified by:
        getCurrentNode in interface XSLTContext
        Returns:
        the current node if it is a DOM Node; otherwise null.
      • setCurrentTemplate

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

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

        public org.w3c.dom.Document getOwnerDocument()
        Get owner Document (enabling extension functions to create new Nodes)
        Specified by:
        getOwnerDocument in interface XSLTContext
      • systemProperty

        public java.lang.Object systemProperty​(java.lang.String namespaceURI,
                                               java.lang.String localName)
        Get the value of a system property
        Specified by:
        systemProperty in interface XSLTContext
      • stringValue

        public java.lang.String stringValue​(org.w3c.dom.Node n)
        Return the String value of a node
        Specified by:
        stringValue in interface XSLTContext
        Throws:
        java.lang.IllegalArgumentException - if it is not a Saxon node
      • setStaticContext

        public void setStaticContext​(StaticContext sc)
        Set the static context
      • getStaticContext

        public StaticContext getStaticContext()
        Get the static context. This is currently available only while processing an extension function
      • 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
      • getException

        public XPathException getException()
        Get the saved exception value.
      • getGroupActivationStack

        public java.util.Stack getGroupActivationStack()
        Get the saxon:group activation stack
      • setRememberedNumber

        public void setRememberedNumber​(NodeInfo node,
                                        int number)
        Set the last remembered node, for node numbering purposes
      • 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.
      • setTailRecursion

        public void setTailRecursion​(ParameterSet p)
        Set tail recursion parameters
      • getTailRecursion

        public ParameterSet getTailRecursion()
        Get tail recursion parameters
      • setReturnValue

        public void setReturnValue​(Value value)
                            throws javax.xml.transform.TransformerException
        Set return value from function
        Throws:
        javax.xml.transform.TransformerException
      • getReturnValue

        public Value getReturnValue()
        Get the return value from function