public function evaluate(APILimitationValue $value, APIUserReference $currentUser, ValueObject $object, array $targets = null)
{
if (!$value instanceof APILanguageLimitation) {
throw new InvalidArgumentException('$value', 'Must be of type: APILanguageLimitation');
}
if ($object instanceof Content) {
$object = $object->getVersionInfo();
} elseif (!$object instanceof VersionInfo && !$object instanceof ContentInfo && !$object instanceof ContentCreateStruct) {
throw new InvalidArgumentException('$object', 'Must be of type: ContentCreateStruct, Content, VersionInfo or ContentInfo');
}
if (empty($value->limitationValues)) {
return false;
}
if ($object instanceof ContentInfo || $object instanceof ContentCreateStruct) {
return in_array($object->mainLanguageCode, $value->limitationValues, true);
}
/*
* @var $object VersionInfo
*/
foreach ($value->limitationValues as $limitationLanguageCode) {
if ($object->initialLanguageCode === $limitationLanguageCode) {
return true;
}
if (in_array($limitationLanguageCode, $object->languageCodes, true)) {
return true;
}
}
return false;
}