public function setCacheAdapter(AdapterAbstract $adapter)
    {
        if ($this->isSetup) {
            $e = new ApplicationIsAlreadySetupException('You cannot set the cache after calling setup()');
            $this->error($e);
        }

        $this->cache = $adapter;
    }