protected function buildSubNamespace($unifiedSubNamespace, array $editionClassDescriptions, array $backwardsCompatibilityMap)
    {
        $unifiedSubNamespacePath = $this->createUnifiedNamespaceSubDirectory($unifiedSubNamespace);

        foreach ($editionClassDescriptions as $editionClassDescription) {
            $filePath = $unifiedSubNamespacePath . '/' . $editionClassDescription['shortUnifiedClassName'] . '.php';
            $fullyQualifiedUnifiedClass = '\\' . trim($unifiedSubNamespace . '\\' . $editionClassDescription['shortUnifiedClassName'], '\\');

            $backwardsCompatibleClass = null;
            $backwardsCompatibilityMapIndex = trim($fullyQualifiedUnifiedClass, '\\');
            if (array_key_exists($backwardsCompatibilityMapIndex, $backwardsCompatibilityMap)) {
                $backwardsCompatibleClass = $backwardsCompatibilityMap[$backwardsCompatibilityMapIndex];
            }

            $content = $this->renderContent(
                $unifiedSubNamespace,
                $editionClassDescription,
                $fullyQualifiedUnifiedClass,
                $backwardsCompatibleClass
            );

            $this->writeFile($filePath, $content);
        }
    }