/** * 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; }