/** * Maps the fields to the reflector to the descriptor. * * @param MethodReflector $reflector * @param MethodDescriptor $descriptor * * @return void */ protected function mapReflectorToDescriptor($reflector, $descriptor) { $descriptor->setFullyQualifiedStructuralElementName($reflector->getName() . '()'); $descriptor->setName($reflector->getShortName()); $descriptor->setVisibility($reflector->getVisibility() ?: 'public'); $descriptor->setFinal($reflector->isFinal()); $descriptor->setAbstract($reflector->isAbstract()); $descriptor->setStatic($reflector->isStatic()); $descriptor->setLine($reflector->getLinenumber()); }
/** * 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; }
/** * Returns a method whose name is set. * * @param ClassDescriptor $classDescriptor * @param string $methodName * * @return MethodDescriptor */ private function givenAMethodWithClassAndName(ClassDescriptor $classDescriptor, $methodName) { $methodDescriptor = new MethodDescriptor(); $methodDescriptor->setName($methodName); $methodDescriptor->setFullyQualifiedStructuralElementName($classDescriptor . '::' . $methodName . '()'); return $methodDescriptor; }
/** * @param string $name The name of the current method. * * @return MethodDescriptor */ protected function whenFixtureHasMethodInImplementedInterfaceWithSameName($name) { $result = new MethodDescriptor(); $result->setName($name); $parent = new InterfaceDescriptor(); $parent->getMethods()->set($name, $result); $class = new ClassDescriptor(); $class->getInterfaces()->set('Implemented', $parent); $this->fixture->setParent($class); return $result; }
/** * @covers phpDocumentor\Descriptor\InterfaceDescriptor::getInheritedMethods */ public function testRetrievingInheritedMethodsReturnsCollectionWithParent() { $parentDescriptor = new MethodDescriptor(); $parentDescriptor->setName('parent'); $parentDescriptorCollection = new Collection(); $parentDescriptorCollection->add($parentDescriptor); $parent = new InterfaceDescriptor(); $parent->setMethods($parentDescriptorCollection); $parentCollection = new Collection(); $parentCollection->add($parent); $grandParentDescriptor = new MethodDescriptor(); $grandParentDescriptor->setName('grandparent'); $grandParentDescriptorCollection = new Collection(); $grandParentDescriptorCollection->add($grandParentDescriptor); $grandParent = new InterfaceDescriptor(); $grandParent->setMethods($grandParentDescriptorCollection); $grandParentCollection = new Collection(); $grandParentCollection->add($grandParent); $parent->setParent($grandParentCollection); $this->fixture->setParent($parentCollection); $result = $this->fixture->getInheritedMethods(); $this->assertInstanceOf('phpDocumentor\\Descriptor\\Collection', $result); $this->assertSame(array($parentDescriptor, $grandParentDescriptor), $result->getAll()); }