/**
  * Process the package tag.
  *
  * @param int $errorPos The line number where the error occurs.
  *
  * @return void
  */
 protected function processPackage($errorPos)
 {
     /** @var PHP_CodeSniffer_CommentParser_SingleElement $package  */
     $package = $this->commentParser->getPackage();
     if ($package !== null) {
         $content = $package->getContent();
         if ($content !== '') {
             if (!PHP_CodeSniffer::isUnderscoreName($content)) {
                 $newContent = str_replace(' ', '_', $content);
                 $nameBits = explode('_', $newContent);
                 $firstBit = array_shift($nameBits);
                 $newName = strtoupper($firstBit[0]) . substr($firstBit, 1) . '_';
                 foreach ($nameBits as $bit) {
                     $newName .= strtoupper($bit[0]) . substr($bit, 1) . '_';
                 }
                 $error = 'Package name "%s" is not valid; consider "%s" instead';
                 $validName = trim($newName, '_');
                 $data = array($content, $validName);
                 $this->currentFile->addError($error, $errorPos, 'InvalidPackage', $data);
             }
         } else {
             $error = '@package tag must contain a name';
             $this->currentFile->addError($error, $errorPos, 'EmptyPackage');
         }
     }
 }