/**
  * Generate arguments for method
  *
  * @param MethodDefinition $methodDefinition
  * @return string
  * @throws ReferenceNotImplementsException
  */
 protected function generateArguments(MethodDefinition $methodDefinition) : string
 {
     $parameterCollection = $methodDefinition->getParametersCollection();
     // If arguments more than one then generate this ones on new line
     $newLinePrefix = count($parameterCollection) > 1 ? "\n\t\t\t\t" : '';
     $arguments = '';
     // Iterate all parameters and generate arguments
     foreach ($parameterCollection as $parameterDefinition) {
         $dependencyValue = $this->resolveDependency($parameterDefinition->getDependency());
         $arguments .= $newLinePrefix . "{$dependencyValue},";
     }
     // Remove comma
     if (count($parameterCollection)) {
         $arguments = rtrim($arguments, ',');
     }
     // Add tabs
     if (count($parameterCollection) > 1) {
         $arguments .= "\n\t\t\t";
     }
     return $arguments;
 }