public function validate()
{
$result = [];
$values = $this->getValue();
$required = $this->getFieldDefinition()->isRequired() || $this->getFieldDefinition()->isPrimaryKey() && !$this->getFieldDefinition()->isAutoIncrement();
if ($this->getFieldDefinition()->isAutoIncrement()) {
$required = false;
}
if (!$required) {
return [];
}
$field = $this->getFieldDefinition();
if ($field->isHidden()) {
return $result;
}
$columns = $this->getColumns();
if (1 === count($columns)) {
$this->validateColumn($values, $columns[0], $result);
} else {
foreach ($this->getColumns() as $column) {
$this->validateColumn(@$values[$column->getName()], $column, $result);
}
}
return $result;
}