net.sf.saxon.trace

## Class AbstractTraceListener

- java.lang.Object
- - net.sf.saxon.trace.AbstractTraceListener

- All Implemented Interfaces:
    EventListener, TraceListener
  Direct Known Subclasses:
    XQueryTraceListener, XSLTTraceListener

      public abstract class AbstractTraceListener
      extends Object
      implements TraceListener

  This is the standard trace listener used when the -T option is specified on the command line. There are two variants, represented by subclasses: one for XSLT, and one for XQuery. The two variants differ in that they present the trace output in terms of constructs used in the relevant host language.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractTraceListener()`

  - ### Method Summary

    Methods
    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` | `enter(InstructionInfo info, XPathContext context)` Called when an instruction in the stylesheet gets processed
    `String` | `escape(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 String` | `getOpeningAttributes()`
    `PrintStream` | `getOutputDestination()` Get the output destination
    `void` | `leave(InstructionInfo info)` Called after an instruction of the stylesheet got processed
    `void` | `open(Controller controller)` Called at start
    `void` | `setOutputDestination(PrintStream stream)` Set the output destination (default is System.err)
    `void` | `startCurrentItem(Item item)` Called when an item becomes the context item
    `protected abstract String` | `tag(int construct)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractTraceListener

          public AbstractTraceListener()

  - ### Method Detail

    - #### getCodeInjector

          public CodeInjector getCodeInjector()

      Get the associated CodeInjector to be used at compile time to generate the tracing calls

    - #### open

          public void open(Controller controller)

      Called at start
      Specified by:
        `open` in interface `TraceListener`
      Parameters:
        `controller` - identifies the transformation controller, and provides the listener with access to context and configuration information

    - #### getOpeningAttributes

          protected abstract String getOpeningAttributes()

    - #### close

          public void close()

      Called at end
      Specified by:
        `close` in interface `TraceListener`

    - #### enter

          public void enter(InstructionInfo info,
                   XPathContext context)

      Called when an instruction in the stylesheet gets processed
      Specified by:
        `enter` in interface `TraceListener`
      Parameters:
        `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.

    - #### escape

          public String escape(String in)

      Escape a string for XML output (in an attribute delimited by double quotes). This method also collapses whitespace (since the value may be an XPath expression that was originally written over several lines).

    - #### leave

          public void leave(InstructionInfo info)

      Called after an instruction of the stylesheet got processed
      Specified by:
        `leave` in interface `TraceListener`
      Parameters:
        `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.

    - #### tag

          protected abstract String tag(int construct)

    - #### startCurrentItem

          public void startCurrentItem(Item item)

      Called when an item becomes the context item
      Specified by:
        `startCurrentItem` in interface `TraceListener`
      Parameters:
        `item` - the new current item. Item objects are not mutable; it is safe to retain a reference to the Item for later use.

    - #### endCurrentItem

          public void endCurrentItem(Item item)

      Called after a node of the source tree got processed
      Specified by:
        `endCurrentItem` in interface `TraceListener`
      Parameters:
        `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.

    - #### setOutputDestination

          public void setOutputDestination(PrintStream stream)

      Set the output destination (default is System.err)
      Specified by:
        `setOutputDestination` in interface `TraceListener`
      Parameters:
        `stream` - the output destination for tracing output

    - #### getOutputDestination

          public PrintStream getOutputDestination()

      Get the output destination

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.