summaryrefslogtreecommitdiff
path: root/examples/statemachine/librarybookstate.pystate
blob: 24f07ed930d02c701be7d29c369cbbc327eead96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#
# librarybookstate.pystate
#
# This state machine models the state of books in a library.
#

statemachine BookState:
    New -(shelve)-> Available
    Available -(reserve)-> OnHold
    OnHold -(release)-> Available
    Available -(checkout)-> CheckedOut
    CheckedOut -(checkin)-> Available

    # add states for restricted books
    New -(restrict)-> Restricted
    Available -(restrict)-> Restricted
    Restricted -(release)-> Available
    Restricted -(checkout)-> CheckedOutRestricted
    CheckedOutRestricted -(checkin)-> Restricted