public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue)
{
$validationErrors = array();
if ($this->isEmptyValue($fieldValue)) {
return $validationErrors;
}
$fieldSettings = $fieldDefinition->getFieldSettings();
$isbnTestNumber = preg_replace("/[\\s|\\-]/", '', trim($fieldValue->isbn));
// Check if value and settings are inline
if ((!isset($fieldSettings['isISBN13']) || $fieldSettings['isISBN13'] === false) && strlen($isbnTestNumber) !== 10) {
$validationErrors[] = new ValidationError('ISBN-10 must be 10 character length', null, array(), 'isbn');
} elseif (strlen($isbnTestNumber) === 10) {
// ISBN-10 check
if (!$this->validateISBNChecksum($isbnTestNumber)) {
$validationErrors[] = new ValidationError('ISBN value must be in a valid ISBN-10 format', null, array(), 'isbn');
}
} else {
// ISBN-13 check
if (!$this->validateISBN13Checksum($isbnTestNumber, $error)) {
$validationErrors[] = new ValidationError($error, null, array(), 'isbn');
}
}
return $validationErrors;
}