name = $name; return $this; } /** * @param non-empty-string $unqualifiedName * @param ?non-empty-string $qualifier */ public function setUnquotedName(string $unqualifiedName, ?string $qualifier = null): self { $this->name = OptionallyQualifiedName::unquoted($unqualifiedName, $qualifier); return $this; } /** * @param non-empty-string $unqualifiedName * @param ?non-empty-string $qualifier */ public function setQuotedName(string $unqualifiedName, ?string $qualifier = null): self { $this->name = OptionallyQualifiedName::quoted($unqualifiedName, $qualifier); return $this; } public function setSQL(string $sql): self { $this->sql = $sql; return $this; } public function create(): View { if ($this->name === null) { throw InvalidViewDefinition::nameNotSet(); } if ($this->sql === null) { throw InvalidViewDefinition::sqlNotSet($this->name); } return new View( $this->name->toString(), $this->sql, ); } }