When a node is decorator is visited, PreEvaluate is first called on it. It is responsible for forwarding the call to the next decorator that implements this interface on the decorator stack of the node. Once all decorators have had the chance to PreEvaluate, the children of the decorator are queried through the IHierarchy interface. The children will then evaluate and PostEvaluate will then be called afterwards on the original decorator.