public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue)
{
$validationErrors = array();
if ($this->isEmptyValue($fieldValue)) {
return $validationErrors;
}
$fieldSettings = $fieldDefinition->getFieldSettings();
if ((!isset($fieldSettings['isMultiple']) || $fieldSettings['isMultiple'] === false) && count($fieldValue->selection) > 1) {
$validationErrors[] = new ValidationError('Field definition does not allow multiple options to be selected.', null, array(), 'selection');
}
foreach ($fieldValue->selection as $optionIndex) {
if (!isset($fieldSettings['options'][$optionIndex])) {
$validationErrors[] = new ValidationError('Option with index %index% does not exist in the field definition.', null, array('%index%' => $optionIndex), 'selection');
}
}
return $validationErrors;
}