protected function validateEditionClassDescription(array $editionClassDescription)
    {
        $expectedKeys = ['isAbstract', 'isInterface', 'editionClassName', 'isDeprecated'];
        $message = 'Edition class description has a wrong layout. ' .
                   'It must be an non empty array with the following keys ' . implode(',', $expectedKeys) . ' ';
        $code = static::ERROR_CODE_INVALID_UNIFIED_NAMESPACE_CLASS_MAP_ENTRY;

        if (empty($editionClassDescription) || !is_array($editionClassDescription)) {
            throw new \Exception($message, $code);
        }

        $actualKeys = array_keys($editionClassDescription);
        sort($expectedKeys);
        sort($actualKeys);
        if ($expectedKeys != $actualKeys) {
            $message .= ' Actual edition class description is ' . var_export($editionClassDescription, true);
            throw new \Exception($message, $code);
        }
    }