forked from Shashikant86/Modern-Toolkit
/
MethodAssembler.php
54 lines (47 loc) · 1.69 KB
/
MethodAssembler.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
/**
* phpDocumentor
*
* PHP Version 5.3
*
* @copyright 2010-2013 Mike van Riel / Naenius (http://www.naenius.com)
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/
namespace phpDocumentor\Descriptor\Builder\Reflector;
use phpDocumentor\Descriptor\MethodDescriptor;
use phpDocumentor\Reflection\ClassReflector\MethodReflector;
/**
* Assembles a MethodDescriptor from a MethodReflector.
*/
class MethodAssembler extends AssemblerAbstract
{
/**
* Creates a Descriptor from the provided data.
*
* @param MethodReflector $data
*
* @return MethodDescriptor
*/
public function create($data)
{
$methodDescriptor = new MethodDescriptor();
$methodDescriptor->setFullyQualifiedStructuralElementName($data->getName() . '()');
$methodDescriptor->setName($data->getShortName());
$methodDescriptor->setVisibility($data->getVisibility() ?: 'public');
$methodDescriptor->setFinal($data->isFinal());
$methodDescriptor->setAbstract($data->isAbstract());
$methodDescriptor->setStatic($data->isStatic());
$this->assembleDocBlock($data->getDocBlock(), $methodDescriptor);
foreach ($data->getArguments() as $argument) {
$argumentAssembler = new ArgumentAssembler();
$argumentDescriptor = $argumentAssembler->create(
$argument,
$methodDescriptor->getTags()->get('param', array())
);
$methodDescriptor->getArguments()->set($argumentDescriptor->getName(), $argumentDescriptor);
}
$methodDescriptor->setLine($data->getLinenumber());
return $methodDescriptor;
}
}