For those of you who were here when my Tree class was discussed, here is
the latest on the integration of that datastructure into the expression
of the FO Tree.
The initial structure is a Tree class with a member class Node. (Node
itself has a number of Iterator member classes.) Class FOTree extends
Tree, and so inherits an inner Node class. That implicit inner Node
class, i.e. FOTree.Node, is extended by FONode, which thereby inherits
the implicit containing class FOTree. Individual elements of the Fo
Tree, starting with FoRoot, extend FONode, thereby also becoming member
classes of FOTree. At least, that's the way I understand this
inheritance to work.
[ Tree [ .Node ] ]
|
v
[ FOTree ([ .Node ])]
|
v
[(FOTree.) [ FONode ] ]
|
v
[(FOTree.) [ FoRoot ] ]
etc
FOTree maintains the property stacks with the initial value, current
value and history of the properties being defined on elements of the FO
Tree. It also implements Runnable, and its run() method is the source
of the FoTreeBuilder thread. On construction, it is given a
SyncedCircularBuffer by means of which it receives event notification
from the parser.
I'm in the process of building the layout-master-set, which will let me
test the property parsing and the behaviour of the property stacks.
So far, so good.
Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]