net.sf.saxon.instruct

Class TraceExpression

public class TraceExpression extends TraceWrapper implements InstructionInfo

A subclass of TraceWrapper used to trace expressions in XPath and XQuery. Unlike the TraceInstruction class, this class contains all information needed for tracing, rather than referencing a separate InstructionDetails object.
Constructor Summary
TraceExpression(Expression child)
Create a trace expression that traces execution of a given child expression
Method Summary
intgetColumnNumber()
Get the column number identifying the position of the instruction.
intgetColumnNumber(long locationId)
intgetConstructType()
Get the construct type.
InstructionInfogetInstructionInfo()
Get the InstructionInfo details about the construct.
intgetLineNumber()
Get the line number of the instruction within its module
intgetLineNumber(long locationId)
Get the line number of the expression being traced.
NamespaceResolvergetNamespaceResolver()
Get the namespace resolver to supply the namespace context of the instruction that is being traced
StructuredQNamegetObjectName()
Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.
IteratorgetProperties()
Get an iterator over all the properties available.
ObjectgetProperty(String name)
Get a named property of the instruction/expression
StringgetSystemId()
Get the URI of the module containing the instruction
StringgetSystemId(long locationId)
Get the system identifier (that is the base URI) of the static context of the expression being traced.
voidsetColumnNumber(int column)
Set the column number of the expression being traced
voidsetConstructType(int type)
Set the type of construct.
voidsetLineNumber(int line)
Set the line number of the expression being traced
voidsetNamespaceResolver(NamespaceResolver resolver)
Set the namespace context for the instruction being traced.
voidsetObjectName(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.
voidsetProperty(String name, Object value)
Set a named property of the instruction/expression
voidsetSystemId(String systemId)
Set the URI of the module containing the instruction

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

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

Returns: -1

getColumnNumber

public int getColumnNumber(long locationId)

getConstructType

public int getConstructType()
Get the construct type. This will generally be a constant in class Location

getInstructionInfo

public InstructionInfo getInstructionInfo()
Get the InstructionInfo details about the construct. This is to satisfy the InstructionInfoProvider interface.

getLineNumber

public int getLineNumber()
Get the line number of the instruction within its module

Returns: the line number

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.

Parameters: locationId not used

Returns: the line number of the expression within its module

getNamespaceResolver

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

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.

getProperties

public 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.

getProperty

public Object getProperty(String name)
Get a named property of the instruction/expression

getSystemId

public String getSystemId()
Get the URI of the module containing the instruction

Returns: the module's URI

getSystemId

public 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.

Parameters: locationId not used

Returns: the URI of the module containing the expression

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

setLineNumber

public void setLineNumber(int line)
Set the line number of the expression being traced

Parameters: line

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

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.

setProperty

public void setProperty(String name, Object value)
Set a named property of the instruction/expression

setSystemId

public void setSystemId(String systemId)
Set the URI of the module containing the instruction

Parameters: systemId the module's URI