/** * @param ChildSession $session The ChildSession object to remove. * @return $this|ChildStation The current object (for fluent API support) */ public function removeSession(ChildSession $session) { if ($this->getSessions()->contains($session)) { $pos = $this->collSessions->search($session); $this->collSessions->remove($pos); if (null === $this->sessionsScheduledForDeletion) { $this->sessionsScheduledForDeletion = clone $this->collSessions; $this->sessionsScheduledForDeletion->clear(); } $this->sessionsScheduledForDeletion[] = clone $session; $session->setStation(null); } return $this; }