public function getClassMap()
    {
        $shopEdition = $this->facts->getEdition();
        $unifiedNamespaceClassMap = null;

        switch ($shopEdition) {
            case \OxidEsales\UnifiedNameSpaceGenerator\Generator::COMMUNITY_EDITION:
                $unifiedNamespaceClassMap =
                    new CommunityEditionUnifiedNamespaceClassMap($this->facts);
                break;
            case \OxidEsales\UnifiedNameSpaceGenerator\Generator::PROFESSIONAL_EDITION:
                $unifiedNamespaceClassMap =
                    new ProfessionalEditionUnifiedNamespaceClassMap($this->facts);
                break;
            case \OxidEsales\UnifiedNameSpaceGenerator\Generator::ENTERPRISE_EDITION:
                $unifiedNamespaceClassMap =
                    new EnterpriseEditionUnifiedNamespaceClassMap($this->facts);
        }

        if (is_null($unifiedNamespaceClassMap)) {
            throw new InvalidEditionException(
                'The OXID eShop edition could not be detected. Be sure to setup your OXID eShop correctly.'
            );
        }

        $editionSpecificUnifiedNamespaceClassMap = $unifiedNamespaceClassMap->getClassMap();

        return $editionSpecificUnifiedNamespaceClassMap;
    }