Chris@0: . Chris@0: */ Chris@0: Chris@0: namespace Doctrine\Common\Annotations; Chris@0: Chris@0: /** Chris@0: * Allows the reader to be used in-place of Doctrine's reader. Chris@0: * Chris@0: * @author Johannes M. Schmitt Chris@0: */ Chris@0: class IndexedReader implements Reader Chris@0: { Chris@0: /** Chris@0: * @var Reader Chris@0: */ Chris@0: private $delegate; Chris@0: Chris@0: /** Chris@0: * Constructor. Chris@0: * Chris@0: * @param Reader $reader Chris@0: */ Chris@0: public function __construct(Reader $reader) Chris@0: { Chris@0: $this->delegate = $reader; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getClassAnnotations(\ReflectionClass $class) Chris@0: { Chris@0: $annotations = array(); Chris@0: foreach ($this->delegate->getClassAnnotations($class) as $annot) { Chris@0: $annotations[get_class($annot)] = $annot; Chris@0: } Chris@0: Chris@0: return $annotations; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getClassAnnotation(\ReflectionClass $class, $annotation) Chris@0: { Chris@0: return $this->delegate->getClassAnnotation($class, $annotation); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getMethodAnnotations(\ReflectionMethod $method) Chris@0: { Chris@0: $annotations = array(); Chris@0: foreach ($this->delegate->getMethodAnnotations($method) as $annot) { Chris@0: $annotations[get_class($annot)] = $annot; Chris@0: } Chris@0: Chris@0: return $annotations; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getMethodAnnotation(\ReflectionMethod $method, $annotation) Chris@0: { Chris@0: return $this->delegate->getMethodAnnotation($method, $annotation); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getPropertyAnnotations(\ReflectionProperty $property) Chris@0: { Chris@0: $annotations = array(); Chris@0: foreach ($this->delegate->getPropertyAnnotations($property) as $annot) { Chris@0: $annotations[get_class($annot)] = $annot; Chris@0: } Chris@0: Chris@0: return $annotations; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function getPropertyAnnotation(\ReflectionProperty $property, $annotation) Chris@0: { Chris@0: return $this->delegate->getPropertyAnnotation($property, $annotation); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Proxies all methods to the delegate. Chris@0: * Chris@0: * @param string $method Chris@0: * @param array $args Chris@0: * Chris@0: * @return mixed Chris@0: */ Chris@0: public function __call($method, $args) Chris@0: { Chris@0: return call_user_func_array(array($this->delegate, $method), $args); Chris@0: } Chris@0: }