State as in "State Transition" holds a set of possible future states to transition. It also holds a map of [field name = integer "mask"]
to represent permissions (view or edit) that the {@link Role} owning thisstate has for each field for an item which is in this particular state.
For example, consider a state FOO and a role BAR.
When a {@link User} with {@link Role} BAR views an item that is having thestatus FOO: ie. when item.status == FOO.status
, the fields that can be viewed on screen will be the entries in FOO.fields where the value == {@link #MASK_READONLY} (1)
|
|