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:
java.io.Serializable
,javax.xml.transform.SourceLocator
,LocationProvider
,SaxonLocator
,EvaluableItem
,SequenceIterable
,TailCallReturner
,InstructionInfo
,org.xml.sax.Locator
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.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties
-
-
Constructor Summary
Constructors Constructor Description TraceExpression(Expression child)
Create a trace expression that traces execution of a given child expression
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getColumnNumber()
Get the column number identifying the position of the instruction.int
getColumnNumber(long locationId)
Get the column number within the document or module containing a particular locationint
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 moduleint
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 tracedStructuredQName
getObjectName()
Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.java.util.Iterator
getProperties()
Get an iterator over all the properties available.java.lang.Object
getProperty(java.lang.String name)
Get a named property of the instruction/expressionjava.lang.String
getSystemId()
Get the URI of the module containing the instructionjava.lang.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 tracedvoid
setConstructType(int type)
Set the type of construct.void
setLineNumber(int line)
Set the line number of the expression being tracedvoid
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(java.lang.String name, java.lang.Object value)
Set a named property of the instruction/expressionvoid
setSystemId(java.lang.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, dynamicError, evaluateAsString, getImplementationMethod, getSourceLocator, isXSLT, process, promoteInst
-
Methods 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, typeError
-
-
-
-
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 classLocation
-
getConstructType
public int getConstructType()
Get the construct type. This will generally be a constant in classLocation
- Specified by:
getConstructType
in interfaceInstructionInfo
- Overrides:
getConstructType
in classInstruction
- Returns:
- the type of expression, as enumerated 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 interfaceInstructionInfo
- Specified by:
getSystemId
in interfaceorg.xml.sax.Locator
- Specified by:
getSystemId
in interfacejavax.xml.transform.SourceLocator
- Overrides:
getSystemId
in classExpression
- Returns:
- the module's URI
-
getLineNumber
public int getLineNumber()
Get the line number of the instruction within its module- Specified by:
getLineNumber
in interfaceInstructionInfo
- Specified by:
getLineNumber
in interfaceorg.xml.sax.Locator
- Specified by:
getLineNumber
in interfacejavax.xml.transform.SourceLocator
- Overrides:
getLineNumber
in classExpression
- 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 interfaceInstructionInfo
- Overrides:
getObjectName
in classExpression
- 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 interfaceInstructionInfo
- Overrides:
getProperty
in 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
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 interfaceInstructionInfo
- Overrides:
getProperties
in 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:
getColumnNumber
in interfaceorg.xml.sax.Locator
- Specified by:
getColumnNumber
in interfacejavax.xml.transform.SourceLocator
- Overrides:
getColumnNumber
in classExpression
- Returns:
- -1
-
getInstructionInfo
public InstructionInfo getInstructionInfo()
Get the InstructionInfo details about the construct. This is to satisfy the InstructionInfoProvider interface.- Overrides:
getInstructionInfo
in classTraceWrapper
- 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 theLocationProvider
interface.- Specified by:
getSystemId
in interfaceLocationProvider
- Overrides:
getSystemId
in 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 theLocationProvider
interface.- Specified by:
getLineNumber
in interfaceLocationProvider
- Overrides:
getLineNumber
in 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:LocationProvider
Get the column number within the document or module containing a particular location- Specified by:
getColumnNumber
in interfaceLocationProvider
- Overrides:
getColumnNumber
in 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
-
-