diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php index 28b6df0d74f0d000e227050df22d59c87aa4a381..45626bed8d63dba57fa5e98fab8c77bbff0dfd4b 100644 --- a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php +++ b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php @@ -9,9 +9,47 @@ use Drupal\migrate\MigrateSkipRowException; /** - * If the source evaluates to empty, we skip processing or the whole row. + * Skips processing the current row when the input value is empty. * - * @link https://www.drupal.org/node/2228793 Online handbook documentation for skip_on_empty process plugin @endlink + * The skip_on_empty process plugin checks to see if the current input value + * is empty (empty string, NULL, FALSE, 0, '0', or an empty array). If so, the + * further processing of the property or the entire row (depending on the chosen + * method) is skipped and will not be migrated. + * + * Available configuration keys: + * - method: (optional) What to do if the input value is empty. Possible values: + * - row: Skips the entire row when an empty value is encountered. + * - process: Prevents further processing of the input property when the value + * is empty. + * + * Examples: + * + * @code + * process: + * field_type_exists: + * plugin: skip_on_empty + * method: row + * source: field_name + * @endcode + * + * If field_name is empty, skips the entire row. + * + * @code + * process: + * parent: + * - + * plugin: skip_on_empty + * method: process + * source: parent + * - + * plugin: migration + * migration: d6_taxonomy_term + * @endcode + * + * If parent is empty, any further processing of the property is skipped - thus, + * the next plugin (migration) will not be run. + * + * @see \Drupal\migrate\Plugin\MigrateProcessInterface * * @MigrateProcessPlugin( * id = "skip_on_empty" @@ -20,7 +58,24 @@ class SkipOnEmpty extends ProcessPluginBase { /** - * {@inheritdoc} + * Skips the current row when value is not set. + * + * @param mixed $value + * The input value. + * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable + * The migration in which this process is being executed. + * @param \Drupal\migrate\Row $row + * The row from the source to process. + * @param string $destination_property + * The destination property currently worked on. This is only used together + * with the $row above. + * + * @return mixed + * The input value, $value, if it is not empty. + * + * @throws \Drupal\migrate\MigrateSkipRowException + * Thrown if the source property is not set and the row should be skipped, + * records with STATUS_IGNORED status in the map. */ public function row($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { if (!$value) { @@ -30,7 +85,24 @@ public function row($value, MigrateExecutableInterface $migrate_executable, Row } /** - * {@inheritdoc} + * Stops processing the current property when value is not set. + * + * @param mixed $value + * The input value. + * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable + * The migration in which this process is being executed. + * @param \Drupal\migrate\Row $row + * The row from the source to process. + * @param string $destination_property + * The destination property currently worked on. This is only used together + * with the $row above. + * + * @return mixed + * The input value, $value, if it is not empty. + * + * @throws \Drupal\migrate\MigrateSkipProcessException + * Thrown if the source property is not set and rest of the process should + * be skipped. */ public function process($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { if (!$value) {