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 Expression
inject
(Expression exp) Process an expression.default Clause
injectClause
(FLWORExpression expression, Clause clause) Insert a tracing or monitoring clause into the pipeline of clauses that evaluates a FLWOR expressiondefault void
process
(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.
-