private function collectServiceMetadata() { $this->metadata = new ServiceMetadata(); $classMetadata = null; foreach ($this->hierarchy as $reflectionClass) { if (null === $classMetadata) { $classMetadata = new ClassMetadata($reflectionClass); } if (null !== ($aMetadata = $this->driver->loadMetadataForClass($reflectionClass))) { if ($reflectionClass->isInterface()) { $classMetadata->merge($aMetadata); } else { $this->metadata->addMetadata($classMetadata); $classMetadata = $aMetadata; } } } $this->metadata->addMetadata($classMetadata); }