Skip to main content

Practice · 1 of 3

Order status state machine

Inside Solution, write enum OrderStatus { PENDING, PAID, SHIPPED, CANCELLED } and static boolean canCancel(OrderStatus s) returning true only for PENDING and PAID. Also static OrderStatus next(OrderStatus s): PENDING→PAID, PAID→SHIPPED, and for SHIPPED/CANCELLED the state stays itself (terminal).

Difficulty: beginner

Back to lesson: Practice: Practice: Modeling Data