public function setCompilationPath(string $compilationPath)
    {
        if (!\file_exists($compilationPath) || !\is_dir($compilationPath) || !\is_writable($compilationPath)) {
            throw new \RuntimeException(\sprintf(
                '%s directory does not exist or is write protected',
                $compilationPath
            ));
        }

        $this->compilationPath = $compilationPath;

        return $this;
    }