protected function extractCompoundKeyValues(array $compoundKeyValues)
    {
        $values = [];
        foreach ($this->compoundKeyParts as $key) {
            if (!isset($compoundKeyValues[$key])) {
                throw new \InvalidArgumentException(
                    get_class($this) . '::keyValue does not contain all compound keys.',
                    1354976661
                );
            }
            $values[] = $compoundKeyValues[$key];
        }

        return implode('.', $values);
    }