Package net.sf.saxon.instruct
Class TraceExpression
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.instruct.Instruction
net.sf.saxon.instruct.TraceWrapper
net.sf.saxon.instruct.TraceExpression
- All Implemented Interfaces:
Serializable,SourceLocator,LocationProvider,SaxonLocator,EvaluableItem,SequenceIterable,TailCallReturner,InstructionInfo,Locator
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.
- See Also:
-
Field Summary
Fields inherited from class net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties -
Constructor Summary
ConstructorsConstructorDescriptionTraceExpression(Expression child) Create a trace expression that traces execution of a given child expression -
Method Summary
Modifier and TypeMethodDescriptionintGet the column number identifying the position of the instruction.intgetColumnNumber(long locationId) Get the column number within the document or module containing a particular locationintGet the construct type.Get the InstructionInfo details about the construct.intGet the line number of the instruction within its moduleintgetLineNumber(long locationId) Get the line number of the expression being traced.Get the namespace resolver to supply the namespace context of the instruction that is being tracedGet a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.Get an iterator over all the properties available.getProperty(String name) Get a named property of the instruction/expressionGet the URI of the module containing the instructiongetSystemId(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 tracedvoidsetConstructType(int type) Set the type of construct.voidsetLineNumber(int line) Set the line number of the expression being tracedvoidsetNamespaceResolver(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/expressionvoidsetSystemId(String systemId) Set the URI of the module containing the instructionMethods inherited from class net.sf.saxon.instruct.TraceWrapper
computeDependencies, copy, createsNewNodes, evaluateItem, explain, getCardinality, getDependencies, getInstructionNameCode, getItemType, iterate, iterateSubExpressions, optimize, processLeavingTail, promote, replaceSubExpression, simplify, typeCheckMethods inherited from class net.sf.saxon.instruct.Instruction
assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, dynamicError, evaluateAsString, getImplementationMethod, getSourceLocator, isXSLT, process, promoteInstMethods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluatePendingUpdates, explain, findParentOf, getContainer, getExecutable, getHostLanguage, getIntrinsicDependencies, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterateEvents, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toString, typeErrorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.xml.sax.Locator
getPublicIdMethods inherited from interface javax.xml.transform.SourceLocator
getPublicId
-
Constructor Details
-
TraceExpression
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
-
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 classLocation -
getConstructType
public int getConstructType()Get the construct type. This will generally be a constant in classLocation- Specified by:
getConstructTypein interfaceInstructionInfo- Overrides:
getConstructTypein classInstruction- Returns:
- the type of expression, as enumerated in class
Location
-
setNamespaceResolver
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
Get the namespace resolver to supply the namespace context of the instruction that is being traced -
setSystemId
Set the URI of the module containing the instruction- Parameters:
systemId- the module's URI
-
getSystemId
Get the URI of the module containing the instruction- Specified by:
getSystemIdin interfaceInstructionInfo- Specified by:
getSystemIdin interfaceLocator- Specified by:
getSystemIdin interfaceSourceLocator- Overrides:
getSystemIdin classExpression- Returns:
- the module's URI
-
getLineNumber
public int getLineNumber()Get the line number of the instruction within its module- Specified by:
getLineNumberin interfaceInstructionInfo- Specified by:
getLineNumberin interfaceLocator- Specified by:
getLineNumberin interfaceSourceLocator- Overrides:
getLineNumberin classExpression- Returns:
- the line number
-
setObjectName
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
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:
getObjectNamein interfaceInstructionInfo- Overrides:
getObjectNamein classExpression- Returns:
- the QName of the object declared or manipulated by this instruction or expression
-
setProperty
Set a named property of the instruction/expression -
getProperty
Get a named property of the instruction/expression- Specified by:
getPropertyin interfaceInstructionInfo- Overrides:
getPropertyin classExpression- Parameters:
name- The name of the required property- Returns:
- The value of the requested property, or null if the property is not available
-
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:
getPropertiesin interfaceInstructionInfo- Overrides:
getPropertiesin classExpression- 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:
getColumnNumberin interfaceLocator- Specified by:
getColumnNumberin interfaceSourceLocator- Overrides:
getColumnNumberin classExpression- Returns:
- -1
-
getInstructionInfo
Get the InstructionInfo details about the construct. This is to satisfy the InstructionInfoProvider interface.- Overrides:
getInstructionInfoin classTraceWrapper- Returns:
- the details of the child instruction (the instruction being traced)
-
getSystemId
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 theLocationProviderinterface.- Specified by:
getSystemIdin interfaceLocationProvider- Overrides:
getSystemIdin classExpression- 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 theLocationProviderinterface.- Specified by:
getLineNumberin interfaceLocationProvider- Overrides:
getLineNumberin classExpression- Parameters:
locationId- not used- Returns:
- the line number of the expression within its module
-
getColumnNumber
public int getColumnNumber(long locationId) Description copied from interface:LocationProviderGet the column number within the document or module containing a particular location- Specified by:
getColumnNumberin interfaceLocationProvider- Overrides:
getColumnNumberin classExpression- 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
-