protected function getUnifiedNamespaceArray(array $classMap)
    {
        $unifiedNameSpace = [];

        foreach ($classMap as $fullyQualifiedUnifiedClass => $editionClassDescription) {
            $parts = explode('\\', $fullyQualifiedUnifiedClass);
            $shortUnifiedClassName = array_pop($parts);
            $this->validateShortUnifiedClassName($shortUnifiedClassName, $fullyQualifiedUnifiedClass);

            $unifiedSubNamespace = implode('\\', $parts);
            $this->validateUnifiedNamespace($unifiedSubNamespace, $fullyQualifiedUnifiedClass);

            $this->validateEditionClassDescription($editionClassDescription);
            $unifiedNameSpace[$unifiedSubNamespace][] = [
                // Interfaces are abstract for Reflection too, here we want just abstract classes
                'isAbstract'            => $editionClassDescription['isAbstract'],
                'isInterface'           => $editionClassDescription['isInterface'],
                'isDeprecated'          => $editionClassDescription['isDeprecated'],
                'shortUnifiedClassName' => $shortUnifiedClassName,
                'editionClassName'      => $editionClassDescription['editionClassName'],
            ];
        }

        return $unifiedNameSpace;
    }
protected function getUnifiedNamespaceArray(array $classMap)
    {
        $unifiedNameSpace = [];

        foreach ($classMap as $fullyQualifiedUnifiedClass => $editionClassDescription) {
            $parts = explode('\\', $fullyQualifiedUnifiedClass);
            $shortUnifiedClassName = array_pop($parts);
            $this->validateShortUnifiedClassName($shortUnifiedClassName, $fullyQualifiedUnifiedClass);

            $unifiedSubNamespace = implode('\\', $parts);
            $this->validateUnifiedNamespace($unifiedSubNamespace, $fullyQualifiedUnifiedClass);

            $this->validateEditionClassDescription($editionClassDescription);
            $unifiedNameSpace[$unifiedSubNamespace][] = [
                // Interfaces are abstract for Reflection too, here we want just abstract classes
                'isAbstract'            => $editionClassDescription['isAbstract'],
                'isInterface'           => $editionClassDescription['isInterface'],
                'isDeprecated'          => $editionClassDescription['isDeprecated'],
                'shortUnifiedClassName' => $shortUnifiedClassName,
                'editionClassName'      => $editionClassDescription['editionClassName'],
            ];
        }

        return $unifiedNameSpace;
    }
protected function getUnifiedNamespaceArray ( array $ classMap ) { $ unifiedNameSpace = [ ] ; foreach ( $ classMap as $ fullyQualifiedUnifiedClass => $ editionClassDescription ) { $ parts = explode ( '\\' , $ fullyQualifiedUnifiedClass ) ; $ shortUnifiedClassName = array_pop ( $ parts ) ; $ this -> validateShortUnifiedClassName ( $ shortUnifiedClassName , $ fullyQualifiedUnifiedClass ) ; $ unifiedSubNamespace = implode ( '\\' , $ parts ) ; $ this -> validateUnifiedNamespace ( $ unifiedSubNamespace , $ fullyQualifiedUnifiedClass ) ; $ this -> validateEditionClassDescription ( $ editionClassDescription ) ; $ unifiedNameSpace [ $ unifiedSubNamespace ] [ ] = [ // Interfaces are abstract for Reflection too, here we want just abstract classes 'isAbstract' => $ editionClassDescription [ 'isAbstract' ] , 'isInterface' => $ editionClassDescription [ 'isInterface' ] , 'isDeprecated' => $ editionClassDescription [ 'isDeprecated' ] , 'shortUnifiedClassName' => $ shortUnifiedClassName , 'editionClassName' => $ editionClassDescription [ 'editionClassName' ] , ] ; } return $ unifiedNameSpace ; }
Return a map of sub-namespaces and their corresponding classes including metadata

@param array $classMap

@return array
Return a map of sub - namespaces and their corresponding classes including metadata