public function setAutoloadDir($dir)
    {
        if (! is_string($dir) || empty($dir)) {
            throw new InvalidArgumentException(sprintf(
                'Invalid directory for autoload of configuration provided; '
                . 'must be a non-empty string, "%s" received.',
                is_object($dir) ? get_class($dir) : gettype($dir)
            ));
        }

        $dir = Normalizer::path($dir);

        if (! file_exists($dir) || ! is_dir($dir)) {
            throw new InvalidArgumentException(sprintf(
                'The directory "%s", specified for autoload of configurations, '
                . 'does not exists.',
                $dir
            ));
        }
        $this->autoloadDir = $dir;
    }