protected function ensureAggregateRootInheritanceChainConsistency()
    {
        foreach ($this->classSchemata as $className => $classSchema) {
            if (!class_exists($className) || ($classSchema instanceof ClassSchema && $classSchema->isAggregateRoot() === false)) {
                continue;
            }

            foreach (class_parents($className) as $parentClassName) {
                if (!isset($this->classSchemata[$parentClassName])) {
                    continue;
                }
                if ($this->isClassAbstract($parentClassName) === false && $this->classSchemata[$parentClassName]->isAggregateRoot() === false) {
                    throw new Exception(sprintf('In a class hierarchy of entities either all or no classes must be an aggregate root, "%1$s" is one but the parent class "%2$s" is not. You probably want to add a repository for "%2$s" or remove the Entity annotation.', $className, $parentClassName), 1316009511);
                }
            }
        }
    }
protected function ensureAggregateRootInheritanceChainConsistency()
    {
        foreach ($this->classSchemata as $className => $classSchema) {
            if (!class_exists($className) || ($classSchema instanceof ClassSchema && $classSchema->isAggregateRoot() === false)) {
                continue;
            }

            foreach (class_parents($className) as $parentClassName) {
                if (!isset($this->classSchemata[$parentClassName])) {
                    continue;
                }
                if ($this->isClassAbstract($parentClassName) === false && $this->classSchemata[$parentClassName]->isAggregateRoot() === false) {
                    throw new Exception(sprintf('In a class hierarchy of entities either all or no classes must be an aggregate root, "%1$s" is one but the parent class "%2$s" is not. You probably want to add a repository for "%2$s" or remove the Entity annotation.', $className, $parentClassName), 1316009511);
                }
            }
        }
    }
protected function ensureAggregateRootInheritanceChainConsistency ( ) { foreach ( $ this -> classSchemata as $ className => $ classSchema ) { if ( ! class_exists ( $ className ) || ( $ classSchema instanceof ClassSchema && $ classSchema -> isAggregateRoot ( ) === false ) ) { continue ; } foreach ( class_parents ( $ className ) as $ parentClassName ) { if ( ! isset ( $ this -> classSchemata [ $ parentClassName ] ) ) { continue ; } if ( $ this -> isClassAbstract ( $ parentClassName ) === false && $ this -> classSchemata [ $ parentClassName ] -> isAggregateRoot ( ) === false ) { throw new Exception ( sprintf ( 'In a class hierarchy of entities either all or no classes must be an aggregate root, "%1$s" is one but the parent class "%2$s" is not. You probably want to add a repository for "%2$s" or remove the Entity annotation.' , $ className , $ parentClassName ) , 1316009511 ) ; } } } }
Checks whether all aggregate roots having superclasses
have a repository assigned up to the tip of their hierarchy.

@return void
@throws Exception
Checks whether all aggregate roots having superclasses have a repository assigned up to the tip of their hierarchy .