/**
  * Load all of the @XmlList annotations
  * 
  * @param ClassMetadata $metadata
  */
 protected function loadClassLists(ClassMetadata $metadata)
 {
     $reflClass = $metadata->getReflectionClass();
     foreach ($reflClass->getProperties() as $property) {
         foreach ($this->reader->getPropertyAnnotations($property) as $annotation) {
             if ($annotation instanceof XmlList) {
                 $nodeName = !is_null($annotation->name) ? $annotation->name : $property->getName();
                 if (!is_null($annotation->type)) {
                     $embeddedMetadata = new ClassMetadata($annotation->type);
                     $this->loadClassMetadata($embeddedMetadata);
                 } else {
                     $embeddedMetadata = null;
                 }
                 $metadata->addList($property->getName(), $nodeName, $annotation->wrapper, $embeddedMetadata);
             }
         }
     }
 }