_identifier = $identifier; $this->collation = $collation; } /** * Sets the identifier this expression represents * * @param string $identifier The identifier * @return void */ public function setIdentifier(string $identifier): void { $this->_identifier = $identifier; } /** * Returns the identifier this expression represents * * @return string */ public function getIdentifier(): string { return $this->_identifier; } /** * Sets the collation. * * @param string $collation Identifier collation * @return void */ public function setCollation(string $collation): void { $this->collation = $collation; } /** * Returns the collation. * * @return string|null */ public function getCollation(): ?string { return $this->collation; } /** * @inheritDoc */ public function sql(ValueBinder $binder): string { $sql = $this->_identifier; if ($this->collation) { $sql .= ' COLLATE ' . $this->collation; } return $sql; } /** * @inheritDoc */ public function traverse(Closure $callback) { return $this; } }