public function __construct($subject, ProcessInterface $process, $stateName = null, TransitionSelectorInterface $transitonSelector = null, MutexInterface $mutex = null)
{
parent::__construct();
$this->subject = $subject;
if ($stateName) {
$this->currentState = $process->getState($stateName);
} else {
$this->currentState = $process->getInitialState();
}
if ($transitonSelector) {
$this->transitonSelector = $transitonSelector;
} else {
$this->transitonSelector = new OneOrNoneActiveTransition();
}
$this->process = $process;
if ($mutex) {
$this->mutex = $mutex;
} else {
$this->mutex = new NullMutex();
}
}