public function loadClassMetadata(ClassMetadataInterface $classMetadata)
 {
     if (!$classMetadata instanceof ClassMetadata) {
         throw new \LogicException('wrong metadata class');
     }
     /** @var ClassMetadata $classMetadata */
     $class = $classMetadata->getReflectionClass();
     if ($this->isExcluded($class)) {
         return true;
     }
     $this->processClassAnnotations($classMetadata);
     foreach ($class->getMethods() as $method) {
         if ($method->getDeclaringClass()->name !== $class->name) {
             continue;
         }
         $this->processMethodAnnotations($method, $classMetadata);
     }
     foreach ($class->getProperties() as $property) {
         if ($property->getDeclaringClass()->name !== $class->name) {
             continue;
         }
         $this->processPropertyAnnotations($property, $classMetadata);
     }
     return true;
 }
Exemple #2
0
 public function loadClassMetadata(ClassMetadataInterface $classMetadata)
 {
     if (!$this->getClassElement($classMetadata->getName())) {
         return true;
     }
     return parent::loadClassMetadata($classMetadata);
 }
 /**
  * {@inheritdoc}
  */
 public function loadClassMetadata(ClassMetadataInterface $classMetadata)
 {
     $reflectionClass = $classMetadata->getReflectionClass();
     $this->processClassDescriptors($classMetadata, $this->getClassDescriptors($reflectionClass));
     foreach ($reflectionClass->getMethods() as $reflectionMethod) {
         $attributeMetadata = $this->createMethodMetadata($reflectionMethod);
         $this->processMethodDescriptors($attributeMetadata, $this->getMethodDescriptors($reflectionMethod));
         $classMetadata->addAttributeMetadata($attributeMetadata);
     }
     foreach ($reflectionClass->getProperties() as $reflectionProperty) {
         $attributeMetadata = $this->createPropertyMetadata($reflectionProperty);
         $this->processPropertyDescriptors($attributeMetadata, $this->getPropertyDescriptors($reflectionProperty));
         $classMetadata->addAttributeMetadata($attributeMetadata);
     }
     return true;
 }
 protected function mergeSuperclasses(ClassMetadataInterface $classMetadata)
 {
     $reflectionClass = $classMetadata->getReflectionClass();
     if ($parent = $reflectionClass->getParentClass()) {
         $classMetadata->merge($this->getMetadataFor($parent->name));
     }
     foreach ($reflectionClass->getInterfaces() as $interface) {
         $classMetadata->merge($this->getMetadataFor($interface->name));
     }
 }