Class TimingCodeInjector

java.lang.Object
net.sf.saxon.trace.TraceCodeInjector
net.sf.saxon.trace.TimingCodeInjector
All Implemented Interfaces:
CodeInjector

public class TimingCodeInjector extends TraceCodeInjector
A code injector that wraps the body of a template or function in a TraceExpression, which causes the TimingTraceListener to be notified at the start and end of the function/template evaluation
  • Constructor Details

    • TimingCodeInjector

      public TimingCodeInjector()
  • Method Details

    • inject

      public Expression inject(Expression exp, StaticContext env, int construct, StructuredQName qName)
      If tracing, wrap an expression in a trace instruction
      Specified by:
      inject in interface CodeInjector
      Overrides:
      inject in class TraceCodeInjector
      Parameters:
      exp - the expression to be wrapped
      env - the static context
      construct - integer constant identifying the kind of construct
      qName - the name of the construct (if applicable)
      Returns:
      the expression that does the tracing
    • injectClause

      public Clause injectClause(Clause target, StaticContext env, Container container)
      If tracing, add a clause to a FLWOR expression that can be used to monitor requests for tuples to be processed
      Specified by:
      injectClause in interface CodeInjector
      Overrides:
      injectClause in class TraceCodeInjector
      Parameters:
      target - the clause whose evaluation is to be traced (or otherwise monitored)
      env -
      container - the container of the containing FLWORExpression @return the new clause to do the tracing; or null if no tracing is required at this point