protected static function resolveClassNameSpace($classNamespace)
    {
        if (! \is_string($classNamespace)) {
            throw ClassNamespaceResolverException::isNotString();
        }

        if (! \class_exists($classNamespace)) {
            throw ClassNamespaceResolverException::isNotExist();
        }

        $classNamespace = self::classNamespaceDecorator($classNamespace);

        $classInstance = new $classNamespace();

        self::setClass($classNamespace, $classInstance);

        return $classInstance;
    }