325 lines
7.6 KiB
PHP
325 lines
7.6 KiB
PHP
<?php
|
|
|
|
namespace Drupal\migrate\Plugin;
|
|
|
|
use Drupal\Component\Plugin\DerivativeInspectionInterface;
|
|
use Drupal\Component\Plugin\PluginInspectionInterface;
|
|
|
|
/**
|
|
* Interface for migrations.
|
|
*/
|
|
interface MigrationInterface extends PluginInspectionInterface, DerivativeInspectionInterface {
|
|
|
|
/**
|
|
* The migration is currently not running.
|
|
*/
|
|
const STATUS_IDLE = 0;
|
|
|
|
/**
|
|
* The migration is currently importing.
|
|
*/
|
|
const STATUS_IMPORTING = 1;
|
|
|
|
/**
|
|
* The migration is currently being rolled back.
|
|
*/
|
|
const STATUS_ROLLING_BACK = 2;
|
|
|
|
/**
|
|
* The migration is being stopped.
|
|
*/
|
|
const STATUS_STOPPING = 3;
|
|
|
|
/**
|
|
* The migration has been disabled.
|
|
*/
|
|
const STATUS_DISABLED = 4;
|
|
|
|
/**
|
|
* Migration error.
|
|
*/
|
|
const MESSAGE_ERROR = 1;
|
|
|
|
/**
|
|
* Migration warning.
|
|
*/
|
|
const MESSAGE_WARNING = 2;
|
|
|
|
/**
|
|
* Migration notice.
|
|
*/
|
|
const MESSAGE_NOTICE = 3;
|
|
|
|
/**
|
|
* Migration info.
|
|
*/
|
|
const MESSAGE_INFORMATIONAL = 4;
|
|
|
|
/**
|
|
* All records have been processed.
|
|
*/
|
|
const RESULT_COMPLETED = 1;
|
|
|
|
/**
|
|
* The process has stopped itself (e.g., the memory limit is approaching).
|
|
*/
|
|
const RESULT_INCOMPLETE = 2;
|
|
|
|
/**
|
|
* The process was stopped externally (e.g., via drush migrate-stop).
|
|
*/
|
|
const RESULT_STOPPED = 3;
|
|
|
|
/**
|
|
* The process had a fatal error.
|
|
*/
|
|
const RESULT_FAILED = 4;
|
|
|
|
/**
|
|
* Dependencies are unfulfilled - skip the process.
|
|
*/
|
|
const RESULT_SKIPPED = 5;
|
|
|
|
/**
|
|
* This migration is disabled, skipping.
|
|
*/
|
|
const RESULT_DISABLED = 6;
|
|
|
|
/**
|
|
* An alias for getPluginId() for backwards compatibility reasons.
|
|
*
|
|
* @return string
|
|
* The plugin_id of the plugin instance.
|
|
*
|
|
* @see \Drupal\migrate\Plugin\MigrationInterface::getPluginId()
|
|
*/
|
|
public function id();
|
|
|
|
/**
|
|
* Get the plugin label.
|
|
*
|
|
* @return string
|
|
* The label for this migration.
|
|
*/
|
|
public function label();
|
|
|
|
/**
|
|
* Returns the initialized source plugin.
|
|
*
|
|
* @return \Drupal\migrate\Plugin\MigrateSourceInterface
|
|
* The source plugin.
|
|
*/
|
|
public function getSourcePlugin();
|
|
|
|
/**
|
|
* Returns the process plugins.
|
|
*
|
|
* @param array $process
|
|
* A process configuration array.
|
|
*
|
|
* @return \Drupal\migrate\Plugin\MigrateProcessInterface[][]
|
|
* An associative array. The keys are the destination property names. Values
|
|
* are process pipelines. Each pipeline contains an array of plugins.
|
|
*/
|
|
public function getProcessPlugins(array $process = NULL);
|
|
|
|
/**
|
|
* Returns the initialized destination plugin.
|
|
*
|
|
* @param bool $stub_being_requested
|
|
* TRUE to indicate that this destination will be asked to construct a stub.
|
|
*
|
|
* @return \Drupal\migrate\Plugin\MigrateDestinationInterface
|
|
* The destination plugin.
|
|
*/
|
|
public function getDestinationPlugin($stub_being_requested = FALSE);
|
|
|
|
/**
|
|
* Returns the initialized id_map plugin.
|
|
*
|
|
* @return \Drupal\migrate\Plugin\MigrateIdMapInterface
|
|
* The ID map.
|
|
*/
|
|
public function getIdMap();
|
|
|
|
/**
|
|
* Check if all source rows from this migration have been processed.
|
|
*
|
|
* @return bool
|
|
* TRUE if this migration is complete otherwise FALSE.
|
|
*/
|
|
public function allRowsProcessed();
|
|
|
|
/**
|
|
* Set the current migration status.
|
|
*
|
|
* @param int $result
|
|
* One of the STATUS_* constants.
|
|
*/
|
|
public function setStatus($status);
|
|
|
|
/**
|
|
* Get the current migration status.
|
|
*
|
|
* @return int
|
|
* The current migration status. Defaults to STATUS_IDLE.
|
|
*/
|
|
public function getStatus();
|
|
|
|
/**
|
|
* Retrieve a label for the current status.
|
|
*
|
|
* @return string
|
|
* User-friendly string corresponding to a STATUS_ constant.
|
|
*/
|
|
public function getStatusLabel();
|
|
|
|
/**
|
|
* Get the result to return upon interruption.
|
|
*
|
|
* @return int
|
|
* The current interruption result. Defaults to RESULT_INCOMPLETE.
|
|
*/
|
|
public function getInterruptionResult();
|
|
|
|
/**
|
|
* Clears the result to return upon interruption.
|
|
*/
|
|
public function clearInterruptionResult();
|
|
|
|
/**
|
|
* Signal that the migration should be interrupted with the specified result
|
|
* code.
|
|
*
|
|
* @param int $result
|
|
* One of the MigrationInterface::RESULT_* constants.
|
|
*/
|
|
public function interruptMigration($result);
|
|
|
|
/**
|
|
* Get the normalized process pipeline configuration describing the process
|
|
* plugins.
|
|
*
|
|
* The process configuration is always normalized. All shorthand processing
|
|
* will be expanded into their full representations.
|
|
*
|
|
* @see https://www.drupal.org/node/2129651#get-shorthand
|
|
*
|
|
* @return array
|
|
* The normalized configuration describing the process plugins.
|
|
*/
|
|
public function getProcess();
|
|
|
|
/**
|
|
* Allows you to override the entire process configuration.
|
|
*
|
|
* @param array $process
|
|
* The entire process pipeline configuration describing the process plugins.
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setProcess(array $process);
|
|
|
|
/**
|
|
* Set the process pipeline configuration for an individual destination field.
|
|
*
|
|
* This method allows you to set the process pipeline configuration for a
|
|
* single property within the full process pipeline configuration.
|
|
*
|
|
* @param string $property
|
|
* The property of which to set the process pipeline configuration.
|
|
* @param mixed $process_of_property
|
|
* The process pipeline configuration to be set for this property.
|
|
*
|
|
* @return $this
|
|
* The migration entity.
|
|
*/
|
|
public function setProcessOfProperty($property, $process_of_property);
|
|
|
|
/**
|
|
* Merge the process pipeline configuration for a single property.
|
|
*
|
|
* @param string $property
|
|
* The property of which to merge the passed in process pipeline
|
|
* configuration.
|
|
* @param array $process_of_property
|
|
* The process pipeline configuration to be merged with the existing process
|
|
* pipeline configuration.
|
|
*
|
|
* @return $this
|
|
* The migration entity.
|
|
*
|
|
* @see Drupal\migrate_drupal\Plugin\migrate\load\LoadEntity::processLinkField()
|
|
*/
|
|
public function mergeProcessOfProperty($property, array $process_of_property);
|
|
|
|
/**
|
|
* Checks if the migration should track time of last import.
|
|
*
|
|
* @return bool
|
|
* TRUE if the migration is tracking last import time.
|
|
*/
|
|
public function isTrackLastImported();
|
|
|
|
/**
|
|
* Set if the migration should track time of last import.
|
|
*
|
|
* @param bool $track_last_imported
|
|
* Boolean value to indicate if the migration should track last import time.
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setTrackLastImported($track_last_imported);
|
|
|
|
/**
|
|
* Get the dependencies for this migration.
|
|
*
|
|
* @return array
|
|
* The dependencies for this migrations.
|
|
*/
|
|
public function getMigrationDependencies();
|
|
|
|
/**
|
|
* Get the destination configuration, with at least a 'plugin' key.
|
|
*
|
|
* @return array
|
|
* The destination configuration.
|
|
*/
|
|
public function getDestinationConfiguration();
|
|
|
|
/**
|
|
* Get the source configuration, with at least a 'plugin' key.
|
|
*
|
|
* @return array
|
|
* The source configuration.
|
|
*/
|
|
public function getSourceConfiguration();
|
|
|
|
/**
|
|
* If true, track time of last import.
|
|
*
|
|
* @return bool
|
|
* Flag to determine desire of tracking time of last import.
|
|
*/
|
|
public function getTrackLastImported();
|
|
|
|
/**
|
|
* The destination identifiers.
|
|
*
|
|
* An array of destination identifiers: the keys are the name of the
|
|
* properties, the values are dependent on the ID map plugin.
|
|
*
|
|
* @return array
|
|
* Destination identifiers.
|
|
*/
|
|
public function getDestinationIds();
|
|
|
|
/**
|
|
* The migration tags.
|
|
*
|
|
* @return array
|
|
* Migration tags.
|
|
*/
|
|
public function getMigrationTags();
|
|
|
|
}
|