/**
* Creates a new Descriptor from the given Reflector.
*
* @param MethodTag $data
*
* @return MethodDescriptor
*/
public function create($data)
{
$descriptor = new MethodDescriptor($data->getName());
$descriptor->setDescription($data->getDescription());
$descriptor->setMethodName($data->getMethodName());
$response = new ReturnDescriptor('return');
$response->setTypes($this->builder->buildDescriptor(new Collection($data->getTypes())));
$descriptor->setResponse($response);
foreach ($data->getArguments() as $argument) {
$argumentDescriptor = $this->createArgumentDescriptorForMagicMethod($argument);
$descriptor->getArguments()->set($argumentDescriptor->getName(), $argumentDescriptor);
}
return $descriptor;
}