class SkipOnValue in Migrate Plus 8.5
Same name and namespace in other branches
- 8.2 src/Plugin/migrate/process/SkipOnValue.php \Drupal\migrate_plus\Plugin\migrate\process\SkipOnValue
- 8.3 src/Plugin/migrate/process/SkipOnValue.php \Drupal\migrate_plus\Plugin\migrate\process\SkipOnValue
- 8.4 src/Plugin/migrate/process/SkipOnValue.php \Drupal\migrate_plus\Plugin\migrate\process\SkipOnValue
If the source evaluates to a configured value, skip processing or whole row.
@MigrateProcessPlugin( id = "skip_on_value" )
Available configuration keys:
- value: An single value or array of values against which the source value should be compared.
- not_equals: (optional) If set, skipping occurs when values are not equal.
- method: What to do if the input value equals to value given in
configuration key value. Possible values:
- row: Skips the entire row.
- process: Prevents further processing of the input property
@codingStandardsIgnoreStart
Examples:
Example usage with minimal configuration:
type:
plugin: skip_on_value
source: content_type
method: process
value: blog
The above example will skip further processing of the input property if the content_type source field equals "blog".
Example usage with full configuration:
type:
plugin: skip_on_value
not_equals: true
source: content_type
method: row
value:
- article
- testimonial
The above example will skip processing any row for which the source row's content type field is not "article" or "testimonial".
@codingStandardsIgnoreEnd
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_plus\Plugin\migrate\process\SkipOnValue
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of SkipOnValue
1 file declares its use of SkipOnValue
- SkipOnValueTest.php in tests/
src/ Unit/ process/ SkipOnValueTest.php
File
- src/
Plugin/ migrate/ process/ SkipOnValue.php, line 59
Namespace
Drupal\migrate_plus\Plugin\migrate\processView source
class SkipOnValue extends ProcessPluginBase {
/**
* {@inheritdoc}
*/
public function row($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
if (empty($this->configuration['value']) && !array_key_exists('value', $this->configuration)) {
throw new MigrateException('Skip on value plugin is missing value configuration.');
}
if (is_array($this->configuration['value'])) {
$value_in_array = FALSE;
$not_equals = isset($this->configuration['not_equals']);
foreach ($this->configuration['value'] as $skipValue) {
$value_in_array |= $this
->compareValue($value, $skipValue);
}
if ($not_equals && !$value_in_array || !$not_equals && $value_in_array) {
throw new MigrateSkipRowException();
}
}
elseif ($this
->compareValue($value, $this->configuration['value'], !isset($this->configuration['not_equals']))) {
throw new MigrateSkipRowException();
}
return $value;
}
/**
* {@inheritdoc}
*/
public function process($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
if (empty($this->configuration['value']) && !array_key_exists('value', $this->configuration)) {
throw new MigrateException('Skip on value plugin is missing value configuration.');
}
if (is_array($this->configuration['value'])) {
$value_in_array = FALSE;
$not_equals = isset($this->configuration['not_equals']);
foreach ($this->configuration['value'] as $skipValue) {
$value_in_array |= $this
->compareValue($value, $skipValue);
}
if ($not_equals && !$value_in_array || !$not_equals && $value_in_array) {
throw new MigrateSkipProcessException();
}
}
elseif ($this
->compareValue($value, $this->configuration['value'], !isset($this->configuration['not_equals']))) {
throw new MigrateSkipProcessException();
}
return $value;
}
/**
* Compare values to see if they are equal.
*
* @param mixed $value
* Actual value.
* @param mixed $skipValue
* Value to compare against.
* @param bool $equal
* Compare as equal or not equal.
*
* @return bool
* True if the compare successfully, FALSE otherwise.
*/
protected function compareValue($value, $skipValue, $equal = TRUE) {
if ($equal) {
return (string) $value == (string) $skipValue;
}
return (string) $value != (string) $skipValue;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
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:: |
3 |
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. | 92 |
ProcessPluginBase:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface:: |
3 |
ProcessPluginBase:: |
public | function |
Performs the associated process. Overrides MigrateProcessInterface:: |
70 |
SkipOnValue:: |
protected | function | Compare values to see if they are equal. | |
SkipOnValue:: |
public | function | ||
SkipOnValue:: |
public | function | ||
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
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. |