public function replaceNamespace(FileGenerator $fileGenerator)
    {
        $uses = [];
        $search = [];
        $replace = [];

        foreach ($fileGenerator->getUses() as $import) {
            $namespace = trim(substr($import[0], 0, strrpos($import[0], '\\')), '\\');

            if ($fileGenerator->getNamespace() !== $namespace) {
                $uses[] = $import;
            }

            $name = trim(substr($import[0], strrpos($import[0], '\\')), '\\');
            $search[] = '\\' . $import[0];
            $search[] = ', \\' . $import[0];
            $replace[] = $name;
            $replace[] = ', ' . $name;
        }
        // workaround to reset use imports
        $reflection = new \ReflectionClass($fileGenerator);
        $property = $reflection->getProperty('uses');
        $property->setAccessible(true);
        $property->setValue($fileGenerator, $uses);

        $code = $fileGenerator->generate();
        return str_replace($search, $replace, $code);
    }