Package net.sf.saxon.expr.parser
Interface CodeInjector
- All Known Implementing Classes:
TimingCodeInjector,TraceCodeInjector,XQueryTraceCodeInjector,XSLTTraceCodeInjector
public interface CodeInjector
A code injector can be used to add code to the expression tree (for example, diagnostic tracing code)
during the process of parsing and tree construction
-
Method Summary
Modifier and TypeMethodDescriptiondefault Expressioninject(Expression exp) Process an expression.default ClauseinjectClause(FLWORExpression expression, Clause clause) Insert a tracing or monitoring clause into the pipeline of clauses that evaluates a FLWOR expressiondefault voidprocess(TraceableComponent component) Process a component such as a function, template, or global variable.
-
Method Details
-
inject
Process an expression.- Parameters:
exp- the expression to be processed- Returns:
- a new expression. Possibly the original expression unchanged; possibly a wrapper
expression (such as a
TraceExpression; possibly a modified version of the original expression. The default implementation returns the supplied expression unchanged.
-
process
Process a component such as a function, template, or global variable. The default implementation does nothing.- Parameters:
component- the component to be processed
-
injectClause
Insert a tracing or monitoring clause into the pipeline of clauses that evaluates a FLWOR expression- Parameters:
expression- the containing FLWOR expressionclause- the clause whose execution is being monitored- Returns:
- an injected clause; or the original. The default implementation returns the original clause unchanged.
-