protected function buildCreateInputStruct($identifier, $defaultLanguageCode, $names, $descriptions)
{
if (!is_string($identifier) || empty($identifier)) {
throw new InvalidArgumentValue('identifier', $identifier);
}
if (!is_string($defaultLanguageCode) || empty($defaultLanguageCode)) {
throw new InvalidArgumentValue('defaultLanguageCode', $defaultLanguageCode);
}
if (!is_array($names) || empty($names)) {
throw new InvalidArgumentValue('names', $names);
}
if (!isset($names[$defaultLanguageCode])) {
throw new InvalidArgumentValue('names', $names);
}
foreach ($names as $languageCode => $name) {
try {
$this->repository->getContentLanguageService()->loadLanguage($languageCode);
} catch (NotFoundException $e) {
throw new InvalidArgumentValue('names', $names);
}
if (!is_string($name) || empty($name)) {
throw new InvalidArgumentValue('names', $names);
}
}
if ($descriptions !== null && !is_array($descriptions)) {
throw new InvalidArgumentValue('descriptions', $descriptions);
}
$descriptions = $descriptions !== null ? $descriptions : array();
$inputStruct = new InputStruct();
$inputStruct->identifier = $identifier;
$inputStruct->defaultLanguage = $defaultLanguageCode;
$inputStruct->name = $names;
$inputStruct->description = array();
foreach ($names as $languageCode => $name) {
if (isset($descriptions[$languageCode]) && !empty($descriptions[$languageCode])) {
$inputStruct->description[$languageCode] = $descriptions[$languageCode];
} else {
$inputStruct->description[$languageCode] = '';
}
}
return $inputStruct;
}