You are here

public function LastTransactionFetch::refineContextDefinitions in Transaction 8

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/LastTransactionFetch.php, line 78

Class

LastTransactionFetch
Provides an action to fetch the last executed transaction of a given target.

Namespace

Drupal\transaction\Plugin\RulesAction

Code

public function refineContextDefinitions(array $selected_data) {
  if ($transaction_type_id = $this
    ->getContextValue('transaction_type_id')) {
    $data_type = 'entity:transaction:' . $transaction_type_id;
    $this->pluginDefinition['provides']['transaction_last_executed']
      ->setDataType($data_type);
  }
}