Class TraceExpression

    • Constructor Detail

      • TraceExpression

        public TraceExpression​(Expression child)
        Create a trace expression that traces execution of a given child expression
        Parameters:
        child - the expression to be traced. This will be available to the TraceListener as the value of the "expression" property of the InstructionInfo.
    • Method Detail

      • setLineNumber

        public void setLineNumber​(int line)
        Set the line number of the expression being traced
        Parameters:
        line -
      • setColumnNumber

        public void setColumnNumber​(int column)
        Set the column number of the expression being traced
        Parameters:
        column -
      • setConstructType

        public void setConstructType​(int type)
        Set the type of construct. This will generally be a constant in class Location
      • setNamespaceResolver

        public void setNamespaceResolver​(NamespaceResolver resolver)
        Set the namespace context for the instruction being traced. This is needed if the tracelistener wants to evaluate XPath expressions in the context of the current instruction
      • getNamespaceResolver

        public NamespaceResolver getNamespaceResolver()
        Get the namespace resolver to supply the namespace context of the instruction that is being traced
      • setSystemId

        public void setSystemId​(java.lang.String systemId)
        Set the URI of the module containing the instruction
        Parameters:
        systemId - the module's URI
      • getSystemId

        public java.lang.String getSystemId()
        Get the URI of the module containing the instruction
        Specified by:
        getSystemId in interface InstructionInfo
        Specified by:
        getSystemId in interface org.xml.sax.Locator
        Specified by:
        getSystemId in interface javax.xml.transform.SourceLocator
        Overrides:
        getSystemId in class Expression
        Returns:
        the module's URI
      • getLineNumber

        public int getLineNumber()
        Get the line number of the instruction within its module
        Specified by:
        getLineNumber in interface InstructionInfo
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
        Specified by:
        getLineNumber in interface javax.xml.transform.SourceLocator
        Overrides:
        getLineNumber in class Expression
        Returns:
        the line number
      • setObjectName

        public void setObjectName​(StructuredQName qName)
        Set a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc. This is used only where the name is known statically.
      • getObjectName

        public StructuredQName getObjectName()
        Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc. This is used only where the name is known statically.
        Specified by:
        getObjectName in interface InstructionInfo
        Overrides:
        getObjectName in class Expression
        Returns:
        the QName of the object declared or manipulated by this instruction or expression
      • setProperty

        public void setProperty​(java.lang.String name,
                                java.lang.Object value)
        Set a named property of the instruction/expression
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Get a named property of the instruction/expression
        Specified by:
        getProperty in interface InstructionInfo
        Overrides:
        getProperty in class Expression
        Parameters:
        name - The name of the required property
        Returns:
        The value of the requested property, or null if the property is not available
      • getProperties

        public java.util.Iterator getProperties()
        Get an iterator over all the properties available. The values returned by the iterator will be of type String, and each string can be supplied as input to the getProperty() method to retrieve the value of the property.
        Specified by:
        getProperties in interface InstructionInfo
        Overrides:
        getProperties in class Expression
        Returns:
        an iterator over the properties.
      • getColumnNumber

        public int getColumnNumber()
        Get the column number identifying the position of the instruction. This method is provided to satisfy the SourceLocator interface. However, the column number is not maintained by Saxon, and the method always returns -1
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
        Specified by:
        getColumnNumber in interface javax.xml.transform.SourceLocator
        Overrides:
        getColumnNumber in class Expression
        Returns:
        -1
      • getInstructionInfo

        public InstructionInfo getInstructionInfo()
        Get the InstructionInfo details about the construct. This is to satisfy the InstructionInfoProvider interface.
        Overrides:
        getInstructionInfo in class TraceWrapper
        Returns:
        the details of the child instruction (the instruction being traced)
      • getSystemId

        public java.lang.String getSystemId​(long locationId)
        Get the system identifier (that is the base URI) of the static context of the expression being traced. This returns the same result as getSystemId(), it is provided to satisfy the LocationProvider interface.
        Specified by:
        getSystemId in interface LocationProvider
        Overrides:
        getSystemId in class Expression
        Parameters:
        locationId - not used
        Returns:
        the URI of the module containing the expression
      • getLineNumber

        public int getLineNumber​(long locationId)
        Get the line number of the expression being traced. This returns the same result as getLineNumber(), it is provided to satisfy the LocationProvider interface.
        Specified by:
        getLineNumber in interface LocationProvider
        Overrides:
        getLineNumber in class Expression
        Parameters:
        locationId - not used
        Returns:
        the line number of the expression within its module
      • getColumnNumber

        public int getColumnNumber​(long locationId)
        Description copied from interface: LocationProvider
        Get the column number within the document or module containing a particular location
        Specified by:
        getColumnNumber in interface LocationProvider
        Overrides:
        getColumnNumber in class Expression
        Parameters:
        locationId - identifier of the location in question (as passed down the Receiver pipeline)
        Returns:
        the column number within the document or module, or -1 if this is not available