Shroder/nodemesh — comment on commit 683936499f081c58ca50ee6b2806f3f9f7b58159
File:  line 0
By Shroder:

CallChain and Call modified to follow a multi-level chaining design.

[Chain Example]
From an integration perspective, using:
$node = new Node("Node1", "set:here");
$node->Node2->jump("here");
$node->Node3->Node4;

Would create:
CallChain
_calls
[0] Call (Node1)
_callChain
_calls
[0] Call (Node2)
_callChain
_calls
[1] Call (Node3)
_callChain
_calls
[0] Call (Node4)

Jumps are now implied by the end of a subchain.

_callChain has been added to Call to mimic a database JOIN structure

_branchIndex was added to keep track of set/jump beavior
_activeChain was added to traverse the chain
setActiveChain() was added to ensure only chains are assigned to _activeChain

Because indexing is being managed by the CallChain, there's a lot of unnecessary extra data being stored in child CallChains. It may be best to flatten the model, removing _callChain and just using _calls as a simple array.