/** * @param mixed $sourceObject * @param mixed $destinationObject */ private function update($sourceObject, $destinationObject) { if ($this->destination instanceof UpdateableObjectProviderInterface) { $destinationObject = $this->destination->prepareUpdate($destinationObject); } $mapResult = $this->mapper->map($sourceObject, $destinationObject); if ($mapResult->getObjectHasChanged() === true) { $this->destination->updated($mapResult->getObject()); $this->logger->info('Updated object with id {id}.', array('id' => $this->mapper->idOf($sourceObject))); } else { $this->logger->info('Kept object with id {id}.', array('id' => $this->mapper->idOf($sourceObject))); } $this->destinationQueue->next(); $this->sourceQueue->next(); }