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]