/**
  * Gets the names of all mapped classes known to this driver.
  *
  * @return array The names of all mapped classes known to this driver.
  */
 public function getAllClassNames()
 {
     $classNames = [];
     $driverClasses = [];
     /**
      * @var $driver FileDriver
      */
     foreach ($this->drivers as $driver) {
         $namespace = $driver->getGlobalBasename();
         $oid = spl_object_hash($driver);
         if (!isset($driverClasses[$oid])) {
             $driverClasses[$oid] = $driver->getAllClassNames();
         }
         foreach ($driverClasses[$oid] as $className) {
             if ($this->classNameIsAllowed($className, $namespace)) {
                 $classNames[$className] = true;
             }
         }
     }
     if (null !== $this->defaultDriver) {
         foreach ($this->defaultDriver->getAllClassNames() as $className) {
             $classNames[$className] = true;
         }
     }
     return array_keys($classNames);
 }
 /**
  * Forces the factory to load the metadata of all classes known to the underlying
  * mapping driver.
  *
  * @return array The ClassMetadata instances of all mapped classes.
  */
 public function getAllMetadata()
 {
     $metadata = array();
     foreach ($this->driver->getAllClassNames() as $className) {
         $metadata[] = $this->getMetadataFor($className);
     }
     return $metadata;
 }
 /**
  * Forces the factory to load the metadata of all classes known to the underlying
  * mapping driver.
  *
  * @return array The ClassMetadata instances of all mapped classes.
  */
 public function getAllMetadata()
 {
     // FIXXME Should this be implemented here or in the driver (chain)?
     $metadata = array();
     foreach ($this->driver->getAllClassNames() as $className) {
         $metadata[] = $this->getMetadataFor($className);
     }
     $this->validate($metadata);
     return $metadata;
 }
 protected function getChildClasses(MappingDriver $driver, $currentClass)
 {
     $classes = array();
     foreach ($driver->getAllClassNames() as $className) {
         if (!is_subclass_of($className, $currentClass)) {
             continue;
         }
         $classes[] = $className;
     }
     return $classes;
 }
 /**
  * @param \Doctrine\Common\Persistence\Mapping\Driver\MappingDriver
  * @param string
  * @return array
  */
 private function getChildClasses(MappingDriver $driver, $currentClass)
 {
     $classes = array();
     foreach ($driver->getAllClassNames() as $className) {
         if (!ClassType::from($className)->isSubclassOf($currentClass)) {
             continue;
         }
         $classes[] = $className;
     }
     return $classes;
 }
 function it_configures_the_mappings_of_a_model_that_overrides_an_original_model($configuration, ClassMetadataInfo $metadataInfo, MappingDriver $mappingDriver)
 {
     $originalQux1 = __NAMESPACE__ . '\\OriginalQux1';
     $originalQux2 = __NAMESPACE__ . '\\OriginalQux2';
     $overrideQux1 = __NAMESPACE__ . '\\OverrideQux1';
     $overrideQux2 = __NAMESPACE__ . '\\OverrideQux2';
     $mappingDriver->getAllClassNames()->willReturn([$originalQux1]);
     $configuration->getMetadataDriverImpl()->willReturn($mappingDriver);
     $metadataInfo->getName()->willReturn($overrideQux1);
     $mappingDriver->loadMetadataForClass($originalQux1, Argument::any())->shouldBeCalled();
     $overrides = [['original' => $originalQux1, 'override' => $overrideQux1], ['original' => $originalQux2, 'override' => $overrideQux2]];
     $this->configure($metadataInfo, $overrides, $configuration);
 }
 /**
  * Adds a default discriminator map if no one is given
  *
  * If an entity is of any inheritance type and does not contain a
  * discriminator map, then the map is generated automatically. This process
  * is expensive computation wise.
  *
  * The automatically generated discriminator map contains the lowercase short name of
  * each class as key.
  *
  * @param \Doctrine\ORM\Mapping\ClassMetadata $class
  *
  * @throws MappingException
  */
 private function addDefaultDiscriminatorMap(ClassMetadata $class)
 {
     $allClasses = $this->driver->getAllClassNames();
     $fqcn = $class->getName();
     $map = array($this->getShortName($class->name) => $fqcn);
     $duplicates = array();
     foreach ($allClasses as $subClassCandidate) {
         if (is_subclass_of($subClassCandidate, $fqcn)) {
             $shortName = $this->getShortName($subClassCandidate);
             if (isset($map[$shortName])) {
                 $duplicates[] = $shortName;
             }
             $map[$shortName] = $subClassCandidate;
         }
     }
     if ($duplicates) {
         throw MappingException::duplicateDiscriminatorEntry($class->name, $duplicates, $map);
     }
     $class->setDiscriminatorMap($map);
 }
 /**
  * {@inheritDoc}
  */
 public function getAllClassNames()
 {
     $classNames = [];
     $driverClasses = [];
     /* @var $driver MappingDriver */
     foreach ($this->drivers as $namespace => $driver) {
         $oid = spl_object_hash($driver);
         if (!isset($driverClasses[$oid])) {
             $driverClasses[$oid] = $driver->getAllClassNames();
         }
         foreach ($driverClasses[$oid] as $className) {
             if (strpos($className, $namespace) === 0) {
                 $classNames[$className] = true;
             }
         }
     }
     if (null !== $this->defaultDriver) {
         foreach ($this->defaultDriver->getAllClassNames() as $className) {
             $classNames[$className] = true;
         }
     }
     return array_keys($classNames);
 }
 /**
  * {@inheritDoc}
  */
 public function getAllClassNames()
 {
     return array_merge($this->builtinDriver->getAllClassNames(), $this->wrappedDriver->getAllClassNames());
 }
 /**
  * Gets the names of all mapped classes known to this driver.
  *
  * @return array The names of all mapped classes known to this driver.
  */
 public function getAllClassNames()
 {
     return array_intersect($this->exposedEntityClasses, $this->innerDriver->getAllClassNames());
 }
 /**
  * @inheritdoc
  */
 public function getAllClassNames()
 {
     return array_intersect($this->entityClasses, $this->wrapped->getAllClassNames());
 }