| Maintains an application-wide pool of navigation cases reported by views. This
communicates with ViewProducers to receive any local definitions of NavigationCases
that the views have generated, in order to ease the common case of single-step
POSTS.
Note that for efficiency reasons, this class operate VERY SPECIFIC SEMANTICS
on the contained objects.
Firstly, it will apply object identity by reference
handle on the NavigationCase lists that it is supplied with - in the most
common case that the navigation cases have not changed since the last time
the ViewProducer was executed, this should be signalled by returning the
SELFSAME list handle to this class, which will then be able to avoid blocking
the ConcurrentHashMap it contains by issuing a write.
Secondly, and as a consequence, NavigationCase lists, once supplied to,
or after delivered from this class, must NEVER be modified!! To change the
stored lists, supply a different object handle.
author: Antranig Basman (amb26@ponder.org.uk) |