net.sf.saxon.instruct

Class TraceExpression

Implemented Interfaces:
InstructionInfo, Locator, EvaluableItem, InstructionInfoProvider, LocationProvider, SaxonLocator, SourceLocator, SequenceIterable, Serializable, SourceLocator, TailCallReturner

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.

Field Summary

Fields inherited from class net.sf.saxon.expr.Expression

EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD, locationId, staticProperties

Constructor Summary

TraceExpression(Expression child)
Create a trace expression that traces execution of a given child expression

Method Summary

int
getColumnNumber()
Get the column number identifying the position of the instruction.
int
getConstructType()
Get the construct type.
InstructionInfo
getInstructionInfo()
Get the InstructionInfo details about the construct.
int
getLineNumber()
Get the line number of the instruction within its module
int
getLineNumber(long locationId)
Get the line number of the expression being traced.
NamespaceResolver
getNamespaceResolver()
Get the namespace resolver to supply the namespace context of the instruction that is being traced
StructuredQName
getObjectName(NamePool pool)
Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.
Iterator
getProperties()
Get an iterator over all the properties available.
Object
getProperty(String name)
Get a named property of the instruction/expression
String
getSystemId()
Get the URI of the module containing the instruction
String
getSystemId(long locationId)
Get the system identifier (that is the base URI) of the static context of the expression being traced.
void
setColumnNumber(int column)
Set the column number of the expression being traced
void
setConstructType(int type)
Set the type of construct.
void
setLineNumber(int line)
Set the line number of the expression being traced
void
setNamespaceResolver(NamespaceResolver resolver)
Set the namespace context for the instruction being traced.
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.
void
setProperty(String name, Object value)
Set a named property of the instruction/expression
void
setSystemId(String systemId)
Set the URI of the module containing the instruction

Methods inherited from class net.sf.saxon.instruct.TraceWrapper

computeDependencies, copy, createsNewNodes, evaluateItem, explain, getCardinality, getDependencies, getInstructionNameCode, getItemType, iterate, iterateSubExpressions, optimize, processLeavingTail, promote, replaceSubExpression, simplify, typeCheck

Methods inherited from class net.sf.saxon.instruct.Instruction

assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, createsNewNodes, dynamicError, evaluateAsString, evaluateItem, getImplementationMethod, getInstructionInfo, getInstructionNameCode, getItemType, getSourceLocator, isXSLT, iterate, process, processLeavingTail, promote, promoteInst, simplify

Methods inherited from class net.sf.saxon.expr.Expression

addToPathMap, adoptChildExpression, checkPermittedContents, computeCardinality, computeDependencies, computeSpecialProperties, computeStaticProperties, copy, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, explain, explain, findParentOf, getCardinality, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getItemType, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterate, iterateEvents, iterateSubExpressions, markTailFunctionCalls, optimize, process, promote, replaceSubExpression, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, toString, typeCheck, typeError

Constructor Details

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 Details

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
Overrides:
getColumnNumber in interface Expression
Returns:
-1

getConstructType

public int getConstructType()
Specified by:
getConstructType in interface InstructionInfo
Overrides:
getConstructType in interface Expression

getInstructionInfo

public InstructionInfo getInstructionInfo()
Get the InstructionInfo details about the construct. This is to satisfy the InstructionInfoProvider interface.
Specified by:
getInstructionInfo in interface InstructionInfoProvider
Overrides:
getInstructionInfo in interface Instruction

getLineNumber

public int getLineNumber()
Get the line number of the instruction within its module
Specified by:
getLineNumber in interface InstructionInfo
Overrides:
getLineNumber in interface Expression
Returns:
the line number

getLineNumber

public int getLineNumber(long locationId)
Specified by:
getLineNumber in interface LocationProvider
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
Specified by:
getNamespaceResolver in interface InstructionInfo

getObjectName

public StructuredQName getObjectName(NamePool pool)
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
Parameters:
pool -

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.
Specified by:
getProperties in interface InstructionInfo

getProperty

public Object getProperty(String name)
Get a named property of the instruction/expression
Specified by:
getProperty in interface InstructionInfo

getSystemId

public String getSystemId()
Get the URI of the module containing the instruction
Specified by:
getSystemId in interface InstructionInfo
Overrides:
getSystemId in interface Expression
Returns:
the module's URI

getSystemId

public String getSystemId(long locationId)
Specified by:
getSystemId in interface LocationProvider
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)

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