3. A detailed overview of the entry methods
Already created (e.g. in Fop.main): an
object of type Driver with the members
userAgent, renderer,
log, stream.
To create userAgent one may use
Driver.getUserAgent: if driver
does not have userAgent, create a new
UserAgent.
To create renderer one may use one of
three methods:
- setRenderer(int
renderer)
- setRenderer(String
rendererClassName)
- setRenderer(Renderer
renderer)
All three methods set the FOP version on the
renderer, and register userAgent
with it, which is obtained using
Driver.getUserAgent.
render(InputHandler inputHandler):
- creates XMLReader parser,
InputSource source;
- calls render(XMLReader parser,
InputSource source).
render(org.w3c.dom.Document
document):
- creates DocumentReader reader,
DocumentInputSource source;
- calls render(XMLReader parser,
InputSource source).
render(XMLReader parser, InputSource
source):
- creates content handler by calling
getContentHandler().
- registers the content handler with the parser.
- Adds currentDocument as a tree
listener to foInputHandler.
- calls parser.parse(source).
getContentHandler():
- if driver does not have a
treeBuilder, call initialize():
create a new TreeBuilder, set the
UserAgent on it.
- if driver does not have a
currentDocument, create a new
Document.
- create a new FOTreeHandler
foInputHandler using currentDocument as
an argument (currentDocument is member
foTreeControl in
foInputHandler).
- create a new AreaTree using currentDocument as an argument, and
register it with currentDocument.
- create a new RenderPagesModel
using renderer as an argument, and register it with
currentDocument and with
currentDocument.areaTree.
- register currentDocument with
the renderer (currentDocument is
member fontInfo in renderer);
setup fontList in
currentDocument.
- start the renderer with the
outputstream.
- register foInputHandler with
currentDocument.
- if currentDocument does not
have a layoutStrategy, create a new
LayoutStrategyLS for it with
currentDocument as an argument.
- register userAgent,
foInputHandler and
currentDocument with treeBuilder
(currentDocument is member
foTreeControl in
treeBuilder).
- return treeBuilder.