class SkipOnEmpty in Drupal 9
Same name and namespace in other branches
- 8 core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php \Drupal\migrate\Plugin\migrate\process\SkipOnEmpty
Skips processing the current row when the input value is empty.
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.
- message: (optional) A message to be logged in the {migrate_message_*} table for this row. Messages are only logged for the 'row' method. If not set, nothing is logged in the message table.
Examples:
process:
field_type_exists:
plugin: skip_on_empty
method: row
source: field_name
message: 'Field field_name is missing'
If 'field_name' is empty, the entire row is skipped and the message 'Field field_name is missing' is logged in the message table.
process:
parent:
-
plugin: skip_on_empty
method: process
source: parent
-
plugin: migration_lookup
migration: d6_taxonomy_term
If 'parent' is empty, any further processing of the property is skipped and the next process plugin (migration_lookup) will not be run. Combining skip_on_empty and migration_lookup is a typical process pipeline combination for hierarchical entities where the root entity does not have a parent.
Plugin annotation
@MigrateProcessPlugin(
id = "skip_on_empty"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\migrate\Plugin\migrate\process\SkipOnEmpty
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of SkipOnEmpty
See also
\Drupal\migrate\Plugin\MigrateProcessInterface
1 file declares its use of SkipOnEmpty
- SkipOnEmptyTest.php in core/
modules/ migrate/ tests/ src/ Unit/ process/ SkipOnEmptyTest.php
File
- core/
modules/ migrate/ src/ Plugin/ migrate/ process/ SkipOnEmpty.php, line 63
Namespace
Drupal\migrate\Plugin\migrate\processView source
class SkipOnEmpty extends ProcessPluginBase {
/**
* 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) {
$message = !empty($this->configuration['message']) ? $this->configuration['message'] : '';
throw new MigrateSkipRowException($message);
}
return $value;
}
/**
* 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) {
throw new MigrateSkipProcessException();
}
return $value;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 |
ProcessPluginBase:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface:: |
3 |
ProcessPluginBase:: |
public | function |
Performs the associated process. Overrides MigrateProcessInterface:: |
72 |
SkipOnEmpty:: |
public | function | Stops processing the current property when value is not set. | |
SkipOnEmpty:: |
public | function | Skips the current row when value is not set. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |