/** * @param AnnotationReader $reader * @param \ReflectionClass $reflClass */ protected function loadPropertyAnnotations(AnnotationReader $reader, ReflectionClass $reflClass) { foreach ($reflClass->getProperties() as $property) { foreach ($reader->getPropertyAnnotations($property) as $annotation) { if ($annotation instanceof SortedIndex) { $this->metadata->addSortedIndex($property->getName(), $this->getKeyNameFromAnnotation($property, $annotation)); } elseif ($annotation instanceof Index) { $this->metadata->addIndex($property->getName(), $this->getKeyNameFromAnnotation($property, $annotation)); } elseif ($annotation instanceof Id) { $this->metadata->setId($property->getName()); } elseif ($annotation instanceof Field) { $this->metadata->addPropertyMapping($property->getName(), array('type' => $annotation->type, 'name' => $annotation->name)); } } } }