You are here

protected function RulesPlugin::getExecutionArguments in Rules 7.2

Gets the right arguments for executing the element.

Throws

RulesEvaluationException If case an argument cannot be retrieved an exception is thrown.

1 call to RulesPlugin::getExecutionArguments()
RulesAbstractPlugin::evaluate in includes/rules.core.inc
Evaluate the element on a given rules evaluation state.

File

includes/rules.core.inc, line 1017
Rules base classes and interfaces needed for any rule evaluation.

Class

RulesPlugin
Base class for rules plugins.

Code

protected function getExecutionArguments(RulesState $state) {
  $parameters = $this
    ->pluginParameterInfo();

  // If there is language parameter, get its value first so it can be used
  // for getting other translatable values.
  $langcode = NULL;
  if (isset($parameters['language'])) {
    $lang_arg = $this
      ->getArgument('language', $parameters['language'], $state);
    $langcode = $lang_arg instanceof EntityMetadataWrapper ? $lang_arg
      ->value() : $lang_arg;
  }

  // Now get all arguments.
  foreach ($parameters as $name => $info) {
    $args[$name] = $name == 'language' ? $lang_arg : $this
      ->getArgument($name, $info, $state, $langcode);
  }

  // Append the settings and the execution state. Faces will append $this.
  $args['settings'] = $this->settings;
  $args['state'] = $state;

  // Make the wrapped variables for the arguments available in the state.
  $state->currentArguments = $args;
  return rules_unwrap_data($args, $parameters);
}