public function call(TransitionEvent $event)
{
if (!isset($this->specs['args'])) {
$args = array($event);
} else {
$expr = new ExpressionLanguage();
$args = array_map(function ($arg) use($expr, $event) {
if (!is_string($arg)) {
return $arg;
}
return $expr->evaluate($arg, array('object' => $event->getStateMachine()->getObject(), 'event' => $event));
}, $this->specs['args']);
}
$callable = $this->filterCallable($this->callable, $event);
return call_user_func_array($callable, $args);
}