01: /*
02: * Created on Aug 7, 2005
03: */
04: package uk.org.ponder.rsf.componentprocessor;
05:
06: import uk.org.ponder.rsf.components.UIComponent;
07:
08: /**
09: * A component processor performs a "fixup" of a component based on some
10: * contextual information. Processing is applied by the ViewProcessor,
11: * after tree production by the ComponentProducer and before rendering by
12: * the ViewRender. A processor may only perform limited modification of the
13: * component tree - no component may be destroyed, and the only structural
14: * modification permitted is "folding" - shunting all children of a non-forking
15: * container to its forking parent.
16: * @author Antranig Basman (antranig@caret.cam.ac.uk)
17: *
18: */
19: public interface ComponentProcessor {
20: /** Process the supplied component. Any exception thrown by this method will
21: * be logged but will not propagate. In order to gracefully signal an error,
22: * it should be appended to the TargettedErrorList for this request.
23: * The only permitted structural modification of the tree is a "fold" of a
24: * component STRICTLY DERIVED from UIContainer (e.g. UIForm) into its
25: * UIContainer parent.
26: */
27:
28: public void processComponent(UIComponent toprocess);
29: }
|