passThroughControllers[2] = expressionProcess;
// create a pipeline process that will contain the individual
// process that together provide the functionality of this dynamic
// process
XMLPipelineProcess preprocessor = new XMLPipelineProcessImpl();
// Add the processes. In the following order, from first to last.
// - Flow control Process - comes first as it controls what events the
// rest see.
// - DISelect Process - comes next as it can filter out elements and
// doing that first can save work, improving performance.
// - Expression Process - comes next as it must evaluate expressions
// before they are seen by the Dynamic Element Rules.
// - Dynamic Rule Process
preprocessor.addHeadProcess(dynamicRuleProcess);
preprocessor.addHeadProcess(expressionProcess);
preprocessor.addHeadProcess(diSelectProcess);
preprocessor.addHeadProcess(new FlowControlProcess());
// set the pipeline as the preprocessor
this.initialisePreprocessor(preprocessor);
}