This class is a handle or reference to a Node. This is to abstract from different methods of reference: Transient Nodes are referred to directly, while persistent nodes are referred to via key/node manager. A handle is used to refer to a node in a safe way over a longer period. While a direct reference may point to a node that has been evicted from the cache and reinstanciated since being set, NodeHandle will always return an up-to-date instance of its node. Helma tries to ensure the following rules on NodeHandles:
- For transient nodes there exists only one NodeHandle.
- If a transient node becomes persistent its node handle is notified and converted into a persistent NodeHandle.
These two properties guarantee that NodeHandle comparisons are easy and usually correct.