You are here

public function EntityFetchById::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/EntityFetchById.php, line 79

Class

EntityFetchById
Provides a 'Fetch entity by id' action.

Namespace

Drupal\rules\Plugin\RulesAction

Code

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