Example #1
0
 /**
  * Gets the metadata of a class.
  *
  * @param string $class A class name
  * @param string $path  The path where the class is stored (if known)
  *
  * @return ClassMetadataCollection A ClassMetadataCollection instance
  */
 public function getClassMetadata($class, $path = null)
 {
     $metadata = $this->getMetadataForClass($class);
     if (!$metadata->getMetadata()) {
         throw MappingException::classIsNotAValidEntityOrMappedSuperClass($class);
     }
     $all = $metadata->getMetadata();
     if (class_exists($class)) {
         $r = new \ReflectionClass($all[0]->name);
         $path = $this->getBasePathForClass($class, $r->getNamespaceName(), dirname($r->getFilename()));
         $metadata->setNamespace($r->getNamespacename());
     } elseif (!$path) {
         throw new \RuntimeException(sprintf('Unable to determine where to save the "%s" class (use the --path option).', $class));
     }
     $metadata->setPath($path);
     return $metadata;
 }