Пример #1
0
 /**
  * Load all of the @XmlElement annotations
  * 
  * @param ClassMetadata $metadata
  */
 protected function loadClassElements(ClassMetadata $metadata)
 {
     $reflClass = $metadata->getReflectionClass();
     foreach ($reflClass->getProperties() as $property) {
         foreach ($this->reader->getPropertyAnnotations($property) as $annotation) {
             if ($annotation instanceof XmlElement) {
                 $nodeName = !is_null($annotation->name) ? $annotation->name : $property->getName();
                 if (is_null($annotation->type)) {
                     $metadata->addElement($nodeName, $property->getName());
                 } else {
                     $embeddedMetadata = new ClassMetadata($annotation->type);
                     $this->loadClassMetadata($embeddedMetadata);
                     $metadata->addEmbed($nodeName, $property->getName(), $embeddedMetadata);
                 }
             }
         }
     }
 }