You are here

public function DataConvert::refineContextDefinitions in Rules 8.3

Refines used and provided context definitions based upon context values.

When a plugin is configured half-way or even fully, some context values are already available upon which the definition of subsequent or provided context can be refined.

Implement this method, when the plugin's context definitions need to be refined. When the selected data definitions should be refined, implement ::assertMetadata() instead.

Note that context gets refined at configuration and execution time of the plugin.

Parameters

\Drupal\Core\TypedData\DataDefinitionInterface[] $selected_data: An array of data definitions for context that is mapped using a data selector, keyed by context name.

Overrides RulesActionBase::refineContextDefinitions

File

src/Plugin/RulesAction/DataConvert.php, line 48

Class

DataConvert
Provides an action to convert data from one type to another.

Namespace

Drupal\rules\Plugin\RulesAction

Code

public function refineContextDefinitions(array $selected_data) {
  if ($type = $this
    ->getContextValue('target_type')) {
    $this->pluginDefinition['provides']['conversion_result']
      ->setDataType($type);
  }
}