public function Language::setValue

Implements TypedDataInterface::setValue().

Both the langcode and the language object may be passed as value.

Overrides TypedData::setValue

File

drupal/core/lib/Drupal/Core/TypedData/Type/Language.php, line 102
Definition of Drupal\Core\TypedData\Type\Language.

Class

Language
Defines the 'language' data type.

Namespace

Drupal\Core\TypedData\Type

Code

public function setValue($value) {

  // Support passing language objects.
  if (is_object($value)) {
    $value = $value->langcode;
  }
  elseif (isset($value) && !is_scalar($value)) {
    throw new InvalidArgumentException('Value is no valid langcode or language object.');
  }
  $source = $this
    ->getLanguageCodeSource();
  if ($source) {
    $source
      ->setValue($value);
  }
  else {
    $this->langcode = $value;
  }
}