This class was abstracted from the ORM ClassMetadataFactory
Since: 2.2
Author: Benjamin Eberlei (kontakt@beberlei.de)
Author: Guilherme Blanco (guilhermeblanco@hotmail.com)
Author: Jonathan Wage (jonwage@gmail.com)
Author: Roman Borschel (roman@code-factory.org)
Inheritance: implements Doctrine\Common\Persistence\Mapping\ClassMetadataFactory
 /**
  * {@inheritdoc}
  *
  * @throws MappingException
  */
 public function loadMetadata($className)
 {
     if (class_exists($className)) {
         return parent::loadMetadata($className);
     }
     throw MappingException::classNotFound($className);
 }
 /**
  * {@inheritDoc}
  */
 protected function loadMetadata($name)
 {
     $loaded = parent::loadMetadata($name);
     array_map([$this, 'resolveDiscriminatorValue'], array_map([$this, 'getMetadataFor'], $loaded));
     return $loaded;
 }
 public function getAllMetadata()
 {
     static $mapKey = 'maps\\$XMLCLASSMAPS';
     if ($this->allLoaded) {
         return;
     }
     $mapData = $this->getCacheDriver()->fetch($mapKey);
     if (!empty($mapData)) {
         $this->xmlToClassMap = $mapData['xmlToClassMap'];
         $this->wrapperXmlToClassMap = $mapData['wrapperXmlToClassMap'];
         $this->alternativeClassMap = $mapData['alternativeClassMap'];
         $this->attributesClassMap = $mapData['attributesClassMap'];
         $result = TRUE;
     } else {
         $result = parent::getAllMetadata();
         $mapData = $this->getCacheDriver()->save($mapKey, array('xmlToClassMap' => $this->xmlToClassMap, 'wrapperXmlToClassMap' => $this->wrapperXmlToClassMap, 'alternativeClassMap' => $this->alternativeClassMap, 'attributesClassMap' => $this->attributesClassMap));
     }
     $this->allLoaded = TRUE;
     return $result;
 }