public function loadClassMetadata(ClassMetadata $metadata)
{
if (null === $this->classes) {
- // This method may throw an exception. Do not modify the class'
- // state before it completes
- $xml = $this->parseFile($this->file);
-
- $this->classes = array();
-
- foreach ($xml->namespace as $namespace) {
- $this->addNamespaceAlias((string) $namespace['prefix'], trim((string) $namespace));
- }
-
- foreach ($xml->class as $class) {
- $this->classes[(string) $class['name']] = $class;
- }
+ $this->loadClassesFromXml();
}
if (isset($this->classes[$metadata->getClassName()])) {
return false;
}
+ /**
+ * Return the names of the classes mapped in this file.
+ *
+ * @return string[] The classes names
+ */
+ public function getMappedClasses()
+ {
+ if (null === $this->classes) {
+ $this->loadClassesFromXml();
+ }
+
+ return array_keys($this->classes);
+ }
+
/**
* Parses a collection of "constraint" XML nodes.
*
return simplexml_import_dom($dom);
}
+ private function loadClassesFromXml()
+ {
+ // This method may throw an exception. Do not modify the class'
+ // state before it completes
+ $xml = $this->parseFile($this->file);
+
+ $this->classes = array();
+
+ foreach ($xml->namespace as $namespace) {
+ $this->addNamespaceAlias((string) $namespace['prefix'], trim((string) $namespace));
+ }
+
+ foreach ($xml->class as $class) {
+ $this->classes[(string) $class['name']] = $class;
+ }
+ }
+
private function loadClassMetadataFromXml(ClassMetadata $metadata, \SimpleXMLElement $classDescription)
{
if (count($classDescription->{'group-sequence-provider'}) > 0) {