2020-04-02 00:02:51 +02:00
|
|
|
<?php
|
|
|
|
|
2022-11-18 18:06:46 +01:00
|
|
|
namespace Core\Driver\SQL\Column;
|
2020-04-02 00:02:51 +02:00
|
|
|
|
2022-11-18 18:06:46 +01:00
|
|
|
use Core\Driver\SQL\Expression\Expression;
|
2023-01-05 22:47:17 +01:00
|
|
|
use Core\Driver\SQL\SQL;
|
2021-04-08 19:08:05 +02:00
|
|
|
|
|
|
|
class Column extends Expression {
|
2020-04-02 00:02:51 +02:00
|
|
|
|
2020-04-03 17:39:58 +02:00
|
|
|
private string $name;
|
|
|
|
private bool $nullable;
|
2020-04-02 00:02:51 +02:00
|
|
|
private $defaultValue;
|
|
|
|
|
2021-04-02 21:58:06 +02:00
|
|
|
public function __construct(string $name, bool $nullable = false, $defaultValue = NULL) {
|
2020-04-02 00:02:51 +02:00
|
|
|
$this->name = $name;
|
|
|
|
$this->nullable = $nullable;
|
|
|
|
$this->defaultValue = $defaultValue;
|
|
|
|
}
|
|
|
|
|
2021-04-02 21:58:06 +02:00
|
|
|
public function getName(): string { return $this->name; }
|
|
|
|
public function notNull(): bool { return !$this->nullable; }
|
2020-04-02 00:02:51 +02:00
|
|
|
public function getDefaultValue() { return $this->defaultValue; }
|
|
|
|
|
2023-01-05 22:47:17 +01:00
|
|
|
function getExpression(SQL $sql, array &$params): string {
|
|
|
|
return $sql->columnName($this->name);
|
|
|
|
}
|
2020-04-03 17:39:58 +02:00
|
|
|
}
|