/**
* Assigns the repository of any aggregate root to all it's
* subclasses, unless they are aggregate root already.
*
* @param ClassSchema $classSchema
* @return void
*/
protected function makeChildClassesAggregateRoot(ClassSchema $classSchema)
{
foreach ($this->getAllSubClassNamesForClass($classSchema->getClassName()) as $childClassName) {
if (!isset($this->classSchemata[$childClassName]) || $this->classSchemata[$childClassName]->isAggregateRoot()) {
continue;
}
$this->classSchemata[$childClassName]->setRepositoryClassName($classSchema->getRepositoryClassName());
$this->makeChildClassesAggregateRoot($this->classSchemata[$childClassName]);
}
}