Any conditions

An any condition refers to a set of conditions on a same entity. Any-conditions may only be used as withdrawn-conditions.

Recall that withdrawn postconditions are conditions that are removed or become irrelevant after an operation. As shown in the PM System domain model, a withdrawn condition may be specified as an 'individual' condition the same way as an added-condition. However, it is sometime useful to refer to all the conditions affecting an entity. As an example let us assume that after his/her card has been ejected, no information about a User is anymore relevant (in order words, the System forgets all about the User i.e. identification, numbers of attempts, etc). It is not always feasible as in that case to list all the possible individual conditions that must be withdrawn. An any condition can be conveniently used in that case.

The syntax for an any condition is as follow

``ANY'' ``ON'' entity [*]
The condition specification must start with keywords ``ANY ON'', followed by an entity name. A wildcard '*' may be used to refer to the entity sub-entities in addition to the entity itself.

As an example ``ANY ON User'' refers to all the conditions with ``User'' as the entity (e.g. ``User is logged in''), but does not include conditions on ``User Card'' or ``User identification''.

The withdrawn-condition ``ANY ON User*'' on the other hand refers to all the conditions on ``User'', as well as all the conditions on attributes of User such as ``User identification'', ``User number of attempts'' and on sub-components such as ``User Card''.

Stephane 2007-09-03