/** * Convert a simple array into a PersistentCollection of Event entities * * @return PersistentCollection */ public function reverseTransform($submittedArray) { // Get a list of existing events and types /** @var PersistentCollection $events */ $events = $this->webhook->getEvents(); $eventTypes = $events->getKeys(); // Check to see what events have been removed $removed = array_diff($eventTypes, $submittedArray); if ($removed) { foreach ($removed as $type) { $this->webhook->removeEvent($events[$type]); } } // Now check to see what events have been added $added = array_diff($submittedArray, $eventTypes); if ($added) { foreach ($added as $type) { // Create a new entity $event = new Event(); $event->setWebhook($this->webhook)->setEventType($type); $events[] = $event; } } $this->webhook->setEvents($events); return $events; }
/** * {@inheritDoc} */ public function setEventType($event_type) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setEventType', array($event_type)); return parent::setEventType($event_type); }