Andreas L Delmelle wrote:
> On Dec 14, 2007, at 11:55, Vincent Hennebert wrote:
>
>> Hi Andreas,
>>
>>> + while (!(ancestor instanceof Flow)
>>> + && ancestor instanceof Wrapper) {
>>
>> Might be wrong, but isn’t that the very same as:
>> while (!(ancestor instanceof Wrapper))
>> ?
rhaaaa! (Hitting my head against the table several times.)
Sorry, I meant:
while (ancestor instanceof Wrapper)
The original loop will stop when:
ancestor instanceof Flow || !(ancestor instanceof Wrapper)
which is equivalent to simply
!(ancestor instanceof Wrapper)
So I think the loop may be simplified.
<snip/>
>> And regarding the validation, wouldn’t it be safer to call the
>> validateChildNode of the nearest non-wrapper ancestor? That way this
>> class would really keep neutral, and we wouldn’t have to worry about the
>> implementation of new FO elements.
>
> There's an idea, although, strictly speaking the fo:wrapper has its own
> content-model.
Sure. Wrapper could check for the exceptions it introduces (mainly the
acceptance of fo:markers as its initial children), and defer to its
parent element for the rest. Then that wouldn’t even be needed to
recursively get the nearest non-wrapper ancestor IIC.
> But you are right, in that it only disallows parts of that
> content-model, if its parent would not allow them as children...
>
> Going to try this approach, and will get back to you on that.
>
>
> Thanks for the feedback.
>
> Cheers
>
> Andreas
Vincent
--
Vincent Hennebert Anyware Technologies
http://people.apache.org/~vhennebert http://www.anyware-tech.com
Apache FOP Committer FOP Development/Consulting