> -----Original Message-----
> From: Glen Mazza [mailto:[EMAIL PROTECTED]
>
<snip />
> But the nice thing about our system is that they don't
> have to follow AbstractRenderer.  AR implements an
> interface called Renderer, which is the bare minimum
> of methods needed to implement a FOP-compatible
> renderer.  Since InlineAreas never call
> renderInlineXXX anymore, I pulled it out of the
> Renderer interface.  Now, a renderer can create
> methods of its choosing for implementing inline area
> rendering--so a Renderer implementor now has more
> design options.
>

You've convinced me fully. Thanks for the enlightenment.

<snip />
>
> > In order to be able to respond to such a call, the
> > InlineArea inevitably
> > gets coupled to the different possible renderers
>
> Actually no--The Renderers get coupled to the
> InlineArea, as well as every other type of Area
> object, which is fine.  Working with InlineAreas,
> querying their traits, rendering them, etc., is their
> job.  But the InlineAreas aren't coupled to the
> Renderers anymore--they don't make a reference anymore
> to Render objects in their code.
>
> InlineArea ia.getTrait(); within the renderer code for
> example:  Renderer knows about IA but IA is now
> oblivious that it's being used by a Renderer object.
>

Aah! So the references were more like 'remnants' of the previous design,
then? (Apart from that, I was paying too little attention to the distinction
between Renderer<->AbstractRenderer...)

Nice cleanup IAC.


Cheers,

Andreas

Reply via email to