/** * Remove narrationPlugin of this object * through the R_issues_narrationplugin cross reference table. * * @param ChildPlugins $narrationPlugin * @return ChildIssues The current object (for fluent API support) */ public function removeNarrationPlugin(ChildPlugins $narrationPlugin) { if ($this->getNarrationPlugins()->contains($narrationPlugin)) { $rIssuesNarrationplugin = new ChildRIssuesNarrationplugin(); $rIssuesNarrationplugin->setNarrationPlugin($narrationPlugin); if ($narrationPlugin->isNarrationIssuesLoaded()) { //remove the back reference if available $narrationPlugin->getNarrationIssues()->removeObject($this); } $rIssuesNarrationplugin->setNarrationIssue($this); $this->removeRIssuesNarrationplugin(clone $rIssuesNarrationplugin); $rIssuesNarrationplugin->clear(); $this->collNarrationPlugins->remove($this->collNarrationPlugins->search($narrationPlugin)); if (null === $this->narrationPluginsScheduledForDeletion) { $this->narrationPluginsScheduledForDeletion = clone $this->collNarrationPlugins; $this->narrationPluginsScheduledForDeletion->clear(); } $this->narrationPluginsScheduledForDeletion->push($narrationPlugin); } return $this; }