Class 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 Detail

      • TimingCodeInjector

        public TimingCodeInjector()
    • Method Detail

      • 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