private function generateMetaData() : string
    {
        $metaData = [];
        $metaDataService = [];

        foreach($this->services as $serviceName => $serviceDefinition)
        {
            foreach($serviceDefinition->getMetaData() as $key => $serviceMetaData)
            {
                if (!isset($metaData[$key])) {
                    $metaData[$key] = [];
                }

                $metaData[$key][$serviceName] = $serviceMetaData;

                // mapping for the service centered
                if (!isset($metaDataService[$serviceName])) {
                    $metaDataService[$serviceName] = [];
                }

                if (!in_array($key, $metaDataService[$serviceName])) {
                    $metaDataService[$serviceName][] = $key;
                }
            }
        }

        return "protected \$metadata = " . var_export($metaData, true) . ";\nprotected \$metadataService = " . var_export($metaDataService, true) . ";\n";
    }