/**
  * Search for unnecessary namespace imports and definitions and replace occurrences.
  *
  * @param FileGenerator $fileGenerator
  * @return string Generated code
  */
 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);
 }