Implements TypedDataInterface::setValue().
Both the langcode and the language object may be passed as value.
Overrides TypedData::setValue
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;
}
}