protected function interact(InputInterface $input, OutputInterface $output)
 {
     $io = new DrupalStyle($input, $output);
     $module = $input->getOption('module');
     if (!$module) {
         // @see Drupal\Console\Command\ModuleTrait::moduleQuestion
         $module = $this->moduleQuestion($io);
         $input->setOption('module', $module);
     }
     $pluginId = $input->getOption('plugin-id');
     if (!$pluginId) {
         $plugins = $this->getPlugins();
         $pluginId = $io->choiceNoList($this->trans('commands.generate.plugin.skeleton.questions.plugin'), $plugins);
         $input->setOption('plugin-id', $pluginId);
     }
     if (array_key_exists($pluginId, $this->pluginGeneratorsImplemented)) {
         $io->warning(sprintf($this->trans('commands.generate.plugin.skeleton.messages.plugin-dont-exist'), $pluginId, $this->pluginGeneratorsImplemented[$pluginId]));
     }
     // --class option
     $class = $input->getOption('class');
     if (!$class) {
         $class = $io->ask($this->trans('commands.generate.plugin.skeleton.options.class'), sprintf('%s%s', 'Default', ucfirst($this->stringConverter->underscoreToCamelCase($pluginId))), function ($class) {
             return $this->validator->validateClassName($class);
         });
         $input->setOption('class', $class);
     }
     // --services option
     // @see Drupal\Console\Command\Shared\ServicesTrait::servicesQuestion
     $services = $input->getOption('services');
     if (!$services) {
         $services = $this->servicesQuestion($io);
         $input->setOption('services', $services);
     }
 }