01: /*
02: * Created on Jul 27, 2005
03: */
04: package uk.org.ponder.rsf.renderer;
05:
06: import uk.org.ponder.rsf.components.UIComponent;
07: import uk.org.ponder.rsf.renderer.decorator.DecoratorManager;
08: import uk.org.ponder.rsf.renderer.scr.StaticRendererCollection;
09: import uk.org.ponder.rsf.request.RenderSystemDecoder;
10: import uk.org.ponder.rsf.template.XMLLump;
11:
12: /**
13: * A Render System encapsulates all operations that are specific to a
14: * particular rendering technology, e.g. HTML.
15: * @author Antranig Basman (antranig@caret.cam.ac.uk)
16: *
17: */
18: public interface RenderSystem extends RenderSystemDecoder {
19: /** Invoked by the IKAT renderer in order to perform a template rewrite based
20: * on the System XML dialect.
21: * @param torender The UIComponent which IKAT determines is to be
22: * corresponded with the specified tag. The ID of this component will match
23: * (at least in prefix) the rsf:id of tag specified in lumpindex. The
24: * component may be <code>null</code> where the tag is to be target of a
25: * static rewrite rule, in which case the System will invoke the relevant SCR.
26: * @param view The view currently being rendered - necessary to resolve
27: * any inter-component references.
28: * @param lump The lump (head lump holding open tag) where
29: * the tag appears within the template requiring rewrite.
30: * @param pos The output stream where the transformed template data is to be
31: * written.
32: * @param idassigner An {@link IDAssigner} object to be used for assigning
33: * a value to outgoing XML <code>id</code> attributes.
34: * @return The render index that the renderer has moved along to.
35: */
36: public int renderComponent(RenderSystemContext rsc,
37: UIComponent torender, XMLLump lump);
38:
39: public void setComponentRenderer(ComponentRenderer componentRenderer);
40:
41: public void setStaticRenderers(StaticRendererCollection scrc);
42:
43: public void setDecoratorManager(DecoratorManager decoratormanager);
44:
45: public void renderDebugMessage(RenderSystemContext rsc,
46: String string);
47:
48: }
|