/**
  * Return method statement
  *
  * @param \ReflectionMethod $method
  *
  * @return \PHPParser_Node_Stmt_ClassMethod
  */
 private function getMethod(\ReflectionMethod $method)
 {
     $methodStmt = $this->factory->method($method->name);
     $params = $method->getParameters();
     foreach ($params as $param) {
         $methodStmt = $this->getMethodStatement($param, $methodStmt);
     }
     $methodInsideStatements = $this->getMethodInsideStatement();
     $methodStmt->addStmts($methodInsideStatements);
     $node = $this->addMethodDocComment($methodStmt, $method);
     return $node;
 }
 public function testCreateMethodBuilder()
 {
     $factory = new PHPParser_BuilderFactory();
     $this->assertInstanceOf('PHPParser_Builder_Method', $factory->method('test'));
 }
 /**
  * @param \EBT\ExtensionBuilder\Domain\Model\ClassObject\Method $methodObject
  * @return \PHPParser_Node_Stmt_ClassMethod
  */
 public function buildMethodNode(\EBT\ExtensionBuilder\Domain\Model\ClassObject\Method $methodObject)
 {
     $factory = new \PHPParser_BuilderFactory();
     $methodNodeBuilder = $factory->method($methodObject->getName());
     $parameters = $methodObject->getParameters();
     if (count($parameters) > 0) {
         foreach ($parameters as $parameter) {
             $parameterNode = $this->buildParameterNode($parameter);
             $methodNodeBuilder->addParam($parameterNode);
         }
     }
     $methodNodeBuilder->addStmts($methodObject->getBodyStmts());
     $methodNode = $methodNodeBuilder->getNode();
     $methodNode->type = $methodObject->getModifiers();
     $methodNode->setAttribute('startLine', $methodObject->getStartLine());
     $methodNode->setAttribute('endLine', $methodObject->getEndLine());
     $methodObject->updateParamTags();
     $this->addCommentAttributes($methodObject, $methodNode);
     return $methodNode;
 }