--- Victor Mote <[EMAIL PROTECTED]> wrote:
> 
> Hmmm. I'm not sure how to interpret the silence. I'm
> going to press on with
> my proposals unless I get some sort of substantive
> reply.
> 
> Victor Mote
> 

Victor,

I apologize for the silence--I did read your email on
Sunday and more thoroughly yesterday.  I was planning
on adding more to what you wrote tomorrow--I've been
too busy and/or worn out this week to give a useful
response to your proposals.  But let me try now:

1.)  BTW, I was happy with your explanations to my 
concerns I raised while voting--in particular your
assurances that Control will not be getting too much
into each of the classes.  We seemed to share many of
the same concerns.

2.)  In general, much of the system I am not versed in
yet, so I don't want to stop you with your redesign
ideas--however, I do expect Jeremias, Joerg, and Peter
to open up their mouths when they see something going
wrong.  However, for me, I can't beat a plan with no
plan, so I'm not going to slow things down by trying.

3.)  Offhand, working on my own, (and before realizing
that I need to change a lot of what I did because of
my mistakes with the parsers, as well as overlooking
several other things), I was able to get rid of the
Driver class entirely, as well as the Starter classes.
 The cost was only a slightly expanded apps.Fop class
(200 lines) and a larger (600-700 line) FOTreeBuilder.
 Due to the large "handshaking" between FOTreeBuilder
and Driver, I also found that adding some code to the
former usually allowed me to remove much more code
from the latter.  All in all, it seems to be pretty
code-efficient.

4.) I'm aware of your horrors of letting an
FOTreeBuilder know the render type, etc.  I agree with
you now on that.  My thinking now is to switch to a
new fo.XSLFOProcessor class which includes, as a child
class, the full definition of a
fo.XSLFOProcessor.FOTreeBuilder class.  Within
fo.XSLFOProcessor but outside of its FOTreeBuilder
definition, is much the same control-type code
currently in Driver (renderer information, etc.) This
way we still get the lines of code efficiency without
breaking so much the OO design in terms of letting
FOTreeBuilder know about everything.

What would be in the apps package if we had such a
XSLFOProcessor class?  Hopefully, just something
simple like this in apps.Fop:

XSLFOProcessor xslfoProcessor = new XSLFOProcessor();
bos = new BufferedOutputStream(new
FileOutputStream(options.getOutputFile()));
xslfoProcessor.setOutputStream(bos);
xslfoProcessor.setInputHandler(inputHandler);
xslfoProcessor.run();
bos.close();
System.exit(0);

Ideally, that would be mostly it.  My current
design-thinking is that once flow of control leaves
the apps package, it does not return until has a full
document finished.  

5.)  The drawbacks, however, of what I'm mentioning
above is that your Control is taking care of a lot
more than just tree building--layout, rending, area
tree, etc.  Again, though, I don't know much about
those areas yet to comment constructively on them--so
I'm reluctant to stop your full solution just because
I may have different ideas on the first 20%.

In general, I would then +1 you going ahead with your
design--providing J, J & P are not shy in opening up
their mouths when needed (I certainly won't be! ;)--
If and when it proves more code efficient to place
certain parts of Control in different packages, we can
look at doing so later.
 
Thanks,
Glen


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to