Statements
Traverse
Navigation
TraverseSelection
NullTraverseSelection
Traverse Statement
Traverse
Navigation
Bank_Level : Floor_accesses_in : Bank
Bank : Defines_service_features_of : Shaft
TraverseSelection
...
NullTraverseSelection
...
The Traverse statement enables an entity to cross over to another entity and take on the new entity as the current context.
Although a traverse is defined at the entity level it is realised at the object level, so that a traverse starting from a single source object may iterate over many target objects, each of which become a new context.
Whether a source object iterates over one or many target objects depends upon the relationship or relationships navigated in the Navigation statement.
In effect, the Traverse statement makes the associated process in the source entity become part of the target entity. Indeed the Traverse statement can be implemented as a procedure call on the target entity by the source entity (just like an object calling a method on another object).
Navigation Statement
Traverse
Navigation
Bank_Level : Floor_accesses_in : Bank
Bank : Defines_service_features_of : Shaft
The Navigation statement specifies a path for a traverse. The path is made up from a number of relationship steps specified in the data subregion. Each step has a source entity, role and target entity.
Although data subregion lists are unordered this is one of the rare cases where we enforce an order to ensure clarity.
TraverseSelection Statement
Traverse
Navigation
Bank_Level : Floor_accesses_in : Bank
Bank : Defines_service_features_of : Shaft
TraverseSelection
...
This statement provides a new set of object contexts determined by the navigated relationship steps. If this region is entered there will always be at least one object context available.
NullTraverseSelection Statement
Traverse
Navigation
Bank_Level : Floor_accesses_in : Bank
Bank : Defines_service_features_of : Shaft
NullTraverseSelection
...
The NullTraverseSelection subregion is executed if no objects are returned by the navigation. The statement can only appear if there is at least one conditional relationship in the navigation.
|