summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Pott2017-03-13 16:40:36 +0000
committerAlex Pott2017-03-13 16:40:36 +0000
commitfed0b7d7b081f9152857276dba255fe81641c726 (patch)
tree1b0e9450933bf728ac30c2bb970cd01d409067fa
parent2cfd4d71b075d685f8aca256527733f4854bc4a9 (diff)
Issue #2845488 by Jo Fitzgerald, gerzenstl, Pavan B S, Yogesh Pawar, gaurav.kapoor, quietone, phenaproxima, mikeryan: Add documentation to SkipOnEmpty process plugin
-rw-r--r--core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php80
1 files changed, 76 insertions, 4 deletions
diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
index 28b6df0..45626be 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\Row;
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 @@ use Drupal\migrate\MigrateSkipRowException;
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 @@ class SkipOnEmpty extends ProcessPluginBase {
}
/**
- * {@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) {