add(NagiosHostTemplateInheritancePeer::SOURCE_TEMPLATE, $targetTemplateId); $inheritances = NagiosHostTemplateInheritancePeer::doSelect($c); foreach($inheritances as $inheritance) { if(NagiosHostTemplateInheritance::isCircular($inheritance->getTargetTemplate(), $originalSourceTemplateId)) return true; } } return false; } public function delete(PropelPDO $con = null) { parent::delete($con); // Check our service dependencies $targetTemplate = $this->getNagiosHostTemplateRelatedByTargetTemplate(); $targetTemplate->integrityCheck(); } public function save(PropelPDO $con = null) { if(NagiosHostTemplateInheritance::isCircular($this->getTargetTemplate(), $this->getSourceTemplate())) { throw new Exception("Adding that inheritance would create a circular chain."); } else { parent::save($con); // Okay, we've saved } } } // NagiosHostTemplateInheritance