diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
index 28b6df0..08dd7f6 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
@@ -9,9 +9,89 @@
 use Drupal\migrate\MigrateSkipRowException;
 
 /**
- * If the source evaluates to empty, we skip processing or the whole row.
+ * Skips processing the current row when the source value evaluates to 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 pipeline value
+ * is empty (for example the empty string, FALSE, or 0). If so, the further
+ * processing of the property or the entire row (depending on the chosen method)
+ * is skipped and will not be migrated.
+ *
+ * To skip the processing of the property when an empty value is encountered,
+ * use the method: process setting.
+ * This is useful when migrating parent values. When the parent source value is
+ * 0 or empty, which represents the root element, there is no need to set a
+ * destination value. In the other case a parent exists and needs a migration
+ * lookup.
+ *
+ * To skip the entire row when an empty value is encountered, use the method:
+ * row setting.
+ * this is useful when combined with a migration process plugin to check if a
+ * related item was previously migrated.
+ *
+ * Examples:
+ *
+ * Example of usage for method: row:
+ *
+ * @code
+ * process:
+ *   field_type_exists:
+ *   -
+ *     plugin: migration
+ *     migration: d6_field
+ *     source:
+ *       - field_name
+ *   -
+ *     plugin: skip_on_empty
+ *     method: row
+ *   -
+ *     plugin: extract
+ *     index:
+ *       - 1
+ * @endcode
+ *
+ * Examples of usage for method:  process:
+ *
+ * @code
+ * process:
+ *   parent:
+ *   -
+ *     plugin: skip_on_empty
+ *     method: process
+ *     source: parent
+ *   -
+ *     plugin: migration
+ *     migration: d6_taxonomy_term
+ * @endcode
+ *
+ * or
+ *
+ * @code
+ *  process:
+ *    book.pid:
+ *    -
+ *      plugin: skip_on_empty
+ *      method: process
+ *      source: plid
+ *    -
+ *     plugin: migration
+ *     migration: d6_book
+ * @endcode
+ *
+ * or
+ *
+ * @code
+ *  process:
+ *    pid:
+ *    -
+ *      plugin: skip_on_empty
+ *      method: process
+ *      source: pid
+ *    -
+ *      plugin: migration
+ *      migration: d6_comment
+ * @endcode
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(
  *   id = "skip_on_empty"
@@ -20,7 +100,22 @@
 class SkipOnEmpty extends ProcessPluginBase {
 
   /**
-   * {@inheritdoc}
+   * Performs the associated process.
+   *
+   * @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 string
+   *   The sub string of $value.
+   *
+   * @throws \Drupal\migrate\MigrateSkipRowException
    */
   public function row($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
@@ -30,7 +125,22 @@ public function row($value, MigrateExecutableInterface $migrate_executable, Row
   }
 
   /**
-   * {@inheritdoc}
+   * Performs the associated process.
+   *
+   * @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 string
+   *   The sub string of $value.
+   *
+   * @throws \Drupal\migrate\MigrateSkipProcessException
    */
   public function process($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
