Hi,

I'd like to propose refactoring the Listener/Renderer classes for the  
following reasons:
* too hard to write renderers since they're using a "streaming" API  
which makes it very difficult to have lookaheads
* streaming api not required since we're using a XDOM object which  
"breaks" streaming anyway

Thus I'm proposing to:
* Remove Listener interface
* Modify Renderer interface to have a single method: render(XDOM,  
WikiPrinter)
* Rewrite existing Renderers and make them components (it would now be  
possible)

I have brainstormed on this with Thomas Mortagne and we have both  
agreed that we don't see any problems with this since we absolutely  
need the XDOM object for:
* ability to have macro priorities (TOC, Include macro, etc) and  
powerful transformations in general
* ability to cache parsed content

Let me know what you think quickly since I'd like to start the  
refactoring ASAP since it's a prerequisite for doing another  
refactoring (moving the XWikiXhtmlEscapeHandler to the  
XWikiSyntaxRenderer) which itself is required for solving this issue:
http://jira.xwiki.org/jira/browse/XWIKI-2851

Thanks
-Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to