/**
  * Helper method for generating trivial methods.
  * @param $methodName
  * @param $body
  * @param $docBlock
  * @param $parameterInfoArray
  * @return MethodGenerator
  */
 private function createMethodGenerator($methodName, $body, DocBlockGenerator $docBlock, $parameterInfoArray, $returnType = null)
 {
     $parameters = [];
     foreach ($parameterInfoArray as $parameterInfo) {
         $parameters[] = new ParameterGenerator($parameterInfo[0], $parameterInfo[1]);
     }
     $methodGenerator = new MethodGenerator($methodName);
     $methodGenerator->setParameters($parameters);
     if ($returnType != null) {
         if (is_array($returnType)) {
             $returnType = implode('|', $returnType);
         }
         $tags[] = new GenericTag('return', $returnType);
         $docBlock->setTags($tags);
     }
     $methodGenerator->setDocBlock($docBlock);
     $methodGenerator->setBody($body);
     return $methodGenerator;
 }
 function addAbstractInstantiateResultMethod()
 {
     //$docBlock = $this->generateExecuteDocBlock('Determine whether the cached response should be used.', 'boolean');
     $parameters = [];
     $parameters[] = new ParameterGenerator('response', 'Amp\\Artax\\Response');
     $parameters[] = new ParameterGenerator('operation', 'ArtaxServiceBuilder\\Operation');
     $methodGenerator = new MethodGenerator('instantiateResult');
     $methodGenerator->setParameters($parameters);
     //$methodGenerator->setDocBlock($docBlock);
     $methodGenerator->setAbstract(true);
     $this->classGenerator->addMethodFromGenerator($methodGenerator);
 }