migration = $migration; } /** * {@inheritdoc} */ public function rollbackAction() { return $this->rollbackAction; } /** * {@inheritdoc} */ public function checkRequirements() { if (empty($this->pluginDefinition['requirements_met'])) { throw new RequirementsException(); } } /** * {@inheritdoc} */ public function rollback(array $destination_identifier) { // By default we do nothing. } /** * {@inheritdoc} */ public function supportsRollback() { return $this->supportsRollback; } /** * For a destination item being updated, set the appropriate rollback action. * * @param array $id_map * The map row data for the item. */ protected function setRollbackAction(array $id_map) { // If the entity we're updating was previously migrated by us, preserve the // existing rollback action. if (isset($id_map['sourceid1'])) { $this->rollbackAction = $id_map['rollback_action']; } // Otherwise, we're updating an entity which already existed on the // destination and want to make sure we do not delete it on rollback. else { $this->rollbackAction = MigrateIdMapInterface::ROLLBACK_PRESERVE; } } }