public function getEdgeCollections($graph)
    {
        if ($graph instanceof Graph) {
            $graph = $graph->getKey();
        }

        $_useCache = $this->cacheEnabled;

        if ($_useCache === true && !empty($this->cache[$graph]['edgeCollections'])) {
            return $this->cache[$graph]['edgeCollections'];
        }

        $url = UrlHelper::buildUrl(Urls::URL_GRAPH, [$graph, Urls::URLPART_EDGE]);

        $connection       = $this->getConnection();
        $batchCaptureMode = $connection->isInBatchCaptureMode();

        if ($batchCaptureMode === true) {
            $this->getConnection()->setBatchRequest(false);
        }

        try {
            $response = $this->getConnection()->get($url);
        } catch (Exception $e) {
            throw new ClientException($e->getMessage());
        }

        if ($batchCaptureMode === true) {
            $this->getConnection()->setBatchRequest(true);
        }

        $data = $response->getJson();
        $data = $data[self::OPTION_COLLECTIONS];

        sort($data);

        if ($_useCache === true && !empty($this->cache[$graph]['edgeCollections'])) {
            $this->cache[$graph]['edgeCollections'] = $data;
        }

        return $data;
    }