You are here

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

Class

TransactionCreate
Provides the transaction create action.

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']
      ->setDataType($data_type);
  }
}