public abstract class AbstractTraceListener extends java.lang.Object implements TraceListener2
Modifier and Type | Field and Description |
---|---|
protected int |
indent |
protected Logger |
out |
Constructor and Description |
---|
AbstractTraceListener() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Called at end
|
void |
endCurrentItem(Item item)
Called after a node of the source tree got processed
|
void |
endRuleSearch(java.lang.Object rule,
Mode mode,
Item item)
Method called when a rule search has completed.
|
void |
enter(InstructionInfo info,
XPathContext context)
Called when an instruction in the stylesheet gets processed
|
java.lang.String |
escape(java.lang.String in)
Escape a string for XML output (in an attribute delimited by double quotes).
|
CodeInjector |
getCodeInjector()
Get the associated CodeInjector to be used at compile time to generate the tracing calls
|
protected abstract java.lang.String |
getOpeningAttributes() |
Logger |
getOutputDestination()
Get the output destination
|
void |
leave(InstructionInfo info)
Called after an instruction of the stylesheet got processed
|
protected int |
level(InstructionInfo info) |
void |
open(Controller controller)
Called at start
|
void |
setLevelOfDetail(int level)
Set the level of detail required
|
void |
setOutputDestination(Logger stream)
Set the output destination (default is System.err)
|
protected static java.lang.String |
spaces(int n)
Get n spaces
|
void |
startCurrentItem(Item item)
Called when an item becomes the context item
|
void |
startRuleSearch()
Method called when a search for a template rule is about to start
|
protected abstract java.lang.String |
tag(int construct) |
protected int indent
protected Logger out
public CodeInjector getCodeInjector()
public void setLevelOfDetail(int level)
level
- 0=none, 1=low (function and template calls), 2=normal (instructions), 3=high (expressions)public void open(Controller controller)
open
in interface TraceListener
controller
- identifies the transformation controller, and provides the listener with
access to context and configuration informationprotected abstract java.lang.String getOpeningAttributes()
public void close()
close
in interface TraceListener
public void enter(InstructionInfo info, XPathContext context)
enter
in interface TraceListener
info
- gives information about the instruction being
executed, and about the context in which it is executed. This object is mutable,
so if information from the InstructionInfo is to be retained, it must be copied.public java.lang.String escape(java.lang.String in)
public void leave(InstructionInfo info)
leave
in interface TraceListener
info
- gives the same information that was supplied to the
enter method, though it is not necessarily the same object. Note that the
line number of the instruction is that of the start tag in the source stylesheet,
not the line number of the end tag.protected abstract java.lang.String tag(int construct)
protected int level(InstructionInfo info)
public void startCurrentItem(Item item)
startCurrentItem
in interface TraceListener
item
- the new current item. Item objects are not mutable; it is safe to retain
a reference to the Item for later use.public void endCurrentItem(Item item)
endCurrentItem
in interface TraceListener
item
- the item that was current, whose processing is now complete. This will represent
the same underlying item as the corresponding startCurrentItem() call, though it will
not necessarily be the same actual object.protected static java.lang.String spaces(int n)
public void setOutputDestination(Logger stream)
setOutputDestination
in interface TraceListener
stream
- the output destination for tracing outputpublic Logger getOutputDestination()
public void endRuleSearch(java.lang.Object rule, Mode mode, Item item)
endRuleSearch
in interface TraceListener2
rule
- the rule (or possible built-in ruleset) that has been selectedmode
- the mode in operationitem
- the item that was checked againstpublic void startRuleSearch()
startRuleSearch
in interface TraceListener2
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.