Wiki
Clone wikiscenariotools-sml / isBlocked()
#isBlocked# The isBlocked function checks, if a message event is blocked by an active scenario. The scenario blocks the message, if it would cause a safety violation in the scenario.
#!java interface ActiveScenario { // ... public boolean isBlocked(MessageEvent event); // ... }
#!java interface ActivePart{ // ... public BlockedType isBlocked(MessageEvent event); // ... }
An active scenario delegates the isBlocked() call to its active interaction. The active interaction is the root of an active part tree. The call is delegated down to enabled nested active parts. When a BlockedType information is returned, it can only be strengthened, but not be inverted. This means, that if a lower enabled active part returns blocked, the event will stay blocked. If it returns ignore, then the event cannot be blocked by upper nodes in the tree. previous content ##Assumptions for a consistent specification:##
BlockedType
0 - Enabled -> ever false
1 - CutNotStrict -> false until a forbidden constraint is unifiable(leads to forbidden)
2 - forbidden -> ever true
3 - ignore -> ever false
4 - CutStrict -> false until coverd events are unifiable leads to (6) other case: (5) or (7) happens
5 - StrictConsidered -> if CutStrict and a considerd message is unifiable -> ever true
6 - Blocked -> true until ignore, forbidden, interrupted
7 - Interrupted -> ever false
*("ever" means value don't change anymore)
Updated