public static function map($scheme = null, $adapter = null)
    {
        if (is_array($scheme)) {
            foreach ($scheme as $s => $adapter) {
                static::map($s, $adapter);
            }
            return static::$adapterMap;
        }

        if ($scheme === null) {
            return static::$adapterMap;
        }

        if ($adapter === null) {
            return isset(static::$adapterMap[$scheme]) ? static::$adapterMap[$scheme] : null;
        }

        if ($adapter === false) {
            unset($adapterMap[$scheme]);
            return;
        }

        return static::$adapterMap[$scheme] = $adapter;
    }