Coverage Summary for Class: Transition (vit.khudenko.android.sessiontracker)

Class Class, % Method, % Line, %
Transition 100% (1/1) 100% (1/1) 100% (6/6)


1 package vit.khudenko.android.sessiontracker 2  3 import vit.khudenko.android.fsm.StateMachine 4  5 /** 6  * A transition defines its identity as a pair of the [`event`][event] and the starting state 7  * (the first item in the [`statePath`][statePath]). `StateMachine` allows unique transitions 8  * only (each transition must have a unique identity). 9  * 10  * @param event [`Event`][Event] - triggering event for this transition. 11  * @param statePath a list of states for this transition. 12  * First item is a starting state for the transition. 13  * Must have at least two items. Must not have repeating items in a row. 14  * 15  * @throws [IllegalArgumentException] if statePath has less than 2 items OR has repeating items in a row 16  * 17  * @param [Event] event parameter of enum type. 18  * @param [State] state parameter of enum type. 19  */ 20 class Transition<Event : Enum<Event>, State : Enum<State>>( 21  val event: Event, 22  val statePath: List<State> 23 ) { 24  init { 25  // trigger validation 26  StateMachine.Transition(event, statePath) 27  } 28 }