/**
  * @param  MethodInfo      $methodInfo
  * @return null|MethodCall
  */
 protected function prepareMethodStatement(MethodInfo $methodInfo)
 {
     $di = $methodInfo->getFirstAnnotationInstanceof('Saxulum\\RouteController\\Annotation\\DI');
     /** @var DI $di */
     if (is_null($di)) {
         return null;
     }
     return new MethodCall(new Variable('controller'), $methodInfo->getName(), $this->prepareArguments($di));
 }
 /**
  * @param  ClassInfo  $classInfo
  * @param  MethodInfo $methodInfo
  * @param  Route      $route
  * @return Assign
  */
 protected function prepareControllerNode(ClassInfo $classInfo, MethodInfo $methodInfo, Route $route)
 {
     return new Assign(new Variable('controller'), new MethodCall(new Variable('controllers'), 'match', array(new Arg($this->prepareScalarArg($route->value)), new Arg($this->prepareScalarArg($classInfo->getServiceId() . ':' . $methodInfo->getName())))));
 }