public function can($transition, array $parameters = array())
{
$transition = $transition instanceof TransitionInterface ? $transition : $this->getTransition($transition);
if (null !== $transition->getGuard() && !call_user_func($transition->getGuard(), $this)) {
return false;
}
if (!in_array($transition->getName(), $this->getCurrentState()->getTransitions())) {
return false;
}
$event = new TransitionEvent($this->getCurrentState(), $transition, $this, $parameters);
$this->dispatchTransitionEvent($transition, $event, FiniteEvents::TEST_TRANSITION);
return !$event->isRejected();
}