/**
* @param mixed $value
* @param ColumnDefinition $column
* @param array $result
*/
protected function validateColumn($value, ColumnDefinition $column, array &$result)
{
$errors = [];
if ($value === '' || $value === null) {
$errors[] = 'Value is empty, but required.';
} else {
if ($regex = $column->getRequiredRegex()) {
$valueString = (string) $value;
if (!preg_match('/' . $regex . '/', $valueString)) {
if (ColumnDefinition::isInteger($column) || ColumnDefinition::isFloat($column) || ColumnDefinition::isBoolean($column)) {
$name = 'Integer';
if (ColumnDefinition::isFloat($column)) {
$name = 'Decimal';
}
if (ColumnDefinition::isBoolean($column)) {
$name = 'Boolean';
}
$errors[] = sprintf('Value is not a %s (%s)', $name, $regex);
} else {
$errors[] = sprintf('Value requires format %s', $regex);
}
}
}
}
if ($errors) {
$result[$column->getName()] = $errors;
}
}