Glen Mazza wrote:

> While I'm implementing the validateChildNode() methods, I 
> would also like to work on removing the AddLMVisitor visitor 
> pattern[1], and revert to our previous method of having the 
> FO's themselves setup the LayoutManagers via 
> addLayoutManager().  (See here [2][3][4] for examples of the 
> previous way of a year
> ago.)  
> 
> I believe this change will help make the fundamental 
> relations between the AreaTreeHandler, the formatting 
> objects, and the layout managers a bit easier to see, and 
> will hopefully lead to making layout less complex.
>  (Architecturally, I'm also not too pleased with the large 
> amount of FO- and LM-specific business logic that 
> AddLMVisitor ends up needing to retain.)
> 
> We haven't had any demand yet for the visitor pattern, and we 
> can always place it in later if needed after the FO/Layout 
> business logic has been better determined.  Any objections?

-0.

I'm sorry you asked (again), but since you did, of course I object. The "0"
is because I am not a FOP stakeholder, but the "-" is because I am a Friend
of FOP. In exchange for making layout "a bit easier" you will be putting
layout logic in the FO Tree. How can it possibly "lead to making layout less
complex"? Nor do I see either "the large amount of FO- and LM-specific
business logic that AddLMVisitor ends up needing to retain" or why this
would be important. Maybe I am missing something here, but when you have no
presentation layer and no database, isn't pretty much everything business
logic? I guess a case can be made that the presentation layer is the area
tree and the data layer is the FOTree. That would make the layout engine the
business logic. If that is true, then you are getting ready to take the
business logic that is now in layout (where it belongs) and moving it back
to the FOTree. Maybe you could start by telling us how someone who insists
on a monolithic design even cares where business logic resides.

Now, in all honesty, there are other ways (besides the Visitor pattern) to
obtain the separation I was seeking. If I had known that the Visitor pattern
would be received as being monstrously complex, I think I would have chosen
another option, and I have no objection to changing to one of those now.

However, this is well-fought territory, and I have no further interest in
its outcome. I mention it only to point out the *real* issue in case any
real FOP stakeholders are interested. It takes a special kind of logic to
deliberately set out to make something less flexible than it was, to reduce
the number of options available. However, that is the FOP company line, and
I am the one who is out of step with it. FOP's development strategy appears
to continue to be wholly staked on the imminent successful release of the
new layout system. Anything that is done to reduce the options to only that
one must result in the maximum resources being bent toward that goal, right?
Is anyone familiar with the economic concept of Unintended Consequences?

I don't mean for this to be a rant, nor do I want it to slow anyone down. I
just want to make very sure that no one thinks I agree with this stuff,
especially when no convincing case has ever been put forth that it is a Good
Thing.

Victor Mote

Reply via email to