On 12.02.2006 21:18:56 Andreas L Delmelle wrote:
> On Feb 8, 2006, at 22:03, Simon Pepping wrote:
> Simon / Jeremias,
> > 6. D5 (The FOUserAgent can return the FopFactory instance. (needed
> > internally by FOP)): Why? Because FOUserAgent is the programmed way
> > to get at configuration settings? Could it be better to implement
> > get methods on the user agent which get the settings from the
> > factory object (factory object not exposed)? Or even pass the
> > factory object instead of the user agent (Cf. question 2)?
> I agree with this comment in particular. I'd prefer to not expose the
> Factory, but implement accessors for the persistent settings. It even
> allows for a sort of flexibility where it comes to the so-called
> persistent data across multiple rendering runs...?
> A bit unclear maybe, so some further explanation: I'm also thinking
> in terms of on-demand loading of certain data, if requested so by the
> user agent. Once it's loaded, it will be readily available for
> another user agent. If no user agent ever requests it, it will never
> be loaded into memory.
Uhm, I can't follow you here. I understand that you prefer that all
rendering-run-level and environment-level info is accessed directly
by methods on the FOUserAgent, whereas I proposed to access the
environment-level data only on the factory to have a clear distinction
between the two levels. But: What data is loaded on-demand and requested
by the user agent?
> If the factory would be exposed, and a lot of classes access it
> directly, the implied amount of checks whether certain features have
> already been loaded would be enormous. If this is centralized in the
> user agent, it becomes a lot easier to maintain.
I don't see any of that. I decided that I will implement my proposal in
a new branch. There, everyone can have a look at the real thing and
we'll adjust as necessary to make everyone happy. You'll see that the
whole thing is much less complicated than you might think. When
everybody's happy, we can merge back or, in the worst case, discard the