uk.gov.hmrc.play.fsm

# JourneyModel

###
Related Doc: package fsm

#### trait JourneyModel extends AnyRef

Journey Model is a base trait of a Finite State Machine, consisting of states and transitions modelling the logic of the business process flow.

Linear Supertypes
AnyRef, Any
Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. JourneyModel
2. AnyRef
3. Any

1. Hide All
2. Show All

Visibility

1. Public
2. All

### Type Members

1. #### final class Merger[S <: State] extends AnyRef

   Merger is a partial function of type `(S <: State, State) => S`, used to reconcile current and previous states when rolling back the journey.

2. #### abstract type State

   State can be anything but usually it will be a set of case classes or case objects representing the stages and data of a business process or transaction.

3. #### final class Transition extends AnyRef

   Transition from one state to the another.

   Transition from one state to the another.

   Transition should be always a *pure* function, depending only on its own parameters and the current state. External async requests to the upstream services should be provided as a function-type parameters.

4. #### final case class TransitionNotAllowed(state: State, breadcrumbs: List[State], transition: Transition) extends Exception with Product with Serializable

### Abstract Value Members

1. #### abstract val root: State

   Where your journey starts by default

### Concrete Value Members

1. #### final def !=(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Definition Classes
     AnyRef → Any

3. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

4. #### object Merger

   Merger builder helper

   Merger builder helper

   Attributes
     protected

5. #### object StayInCurrentState extends Exception with Product with Serializable

6. #### object Transition

   Transition builder helper

   Transition builder helper

   Attributes
     protected

7. #### final def asInstanceOf[T0]: T0

   Definition Classes
     Any

8. #### def clone(): AnyRef

   Attributes
     protected[java.lang]
   Definition Classes
     AnyRef
   Annotations
     @throws( ... )

9. #### final def eq(arg0: AnyRef): Boolean

   Definition Classes
     AnyRef

10. #### def equals(arg0: Any): Boolean

    Definition Classes
      AnyRef → Any

11. #### final def fail[T](exception: Exception): Future[T]

    Fail the transition

12. #### def finalize(): Unit

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )

13. #### final def getClass(): Class[_]

    Definition Classes
      AnyRef → Any

14. #### final def goto(state: State): Future[State]

    Replace the current state with the new one.

15. #### def hashCode(): Int

    Definition Classes
      AnyRef → Any

16. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

17. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

18. #### final def notify(): Unit

    Definition Classes
      AnyRef

19. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

20. #### final val start: Transition

    Built-in transition from anywhere to the root state

21. #### final def stay[T]: Future[T]

    Stay in the current state

22. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

23. #### def toString(): String

    Definition Classes
      AnyRef → Any

24. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

25. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

26. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

### Inherited from AnyRef

### Inherited from Any

### Ungrouped