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; }
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)); } }