public function processDocBlock(File $phpcsFile, $stackPtr)
    {
        $tokens       = $phpcsFile->getTokens();
        $commentStart = $stackPtr;
        $commentEnd   = $tokens[$stackPtr]['comment_closer'];

        // Multi-line DocBlock.
        if ($tokens[$commentEnd]['line'] !== $tokens[$commentStart]['line']) {
            return;
        }

        $commentTags = $tokens[$stackPtr]['comment_tags'];

        // Single-line DocBlock without tags inside.
        if (empty($commentTags) === true) {
            return;
        }

        // First tag will always exist.
        $firstTagPtr = $commentTags[0];

        // Not a type comment.
        if ($this->isTypeComment($tokens[$firstTagPtr]['content']) === false) {
            return;
        }

        $structure = new TypeCommentStructure($phpcsFile, $stackPtr);

        if ($structure->className === null) {
            $error              = 'Type comment must be in "/** %s ClassName $variable_name */" format';
            $leadingWhitespace  = $tokens[$stackPtr + 1]['code'] === T_DOC_COMMENT_WHITESPACE;
            $trailingWhitespace = $tokens[$commentEnd - 1]['code'] === T_DOC_COMMENT_WHITESPACE;

            if ($leadingWhitespace === false || $trailingWhitespace === false) {
                $fix = $phpcsFile->addFixableError($error, $stackPtr, 'WrongStyle', array(self::TYPE_TAG));
                if ($fix === true) {
                    if ($leadingWhitespace === false) {
                        $phpcsFile->fixer->addContentBefore($stackPtr + 1, ' ');
                    }

                    if ($trailingWhitespace === false) {
                        $phpcsFile->fixer->addContent($commentEnd - 1, ' ');
                    }
                }
            } else {
                $phpcsFile->addError($error, $firstTagPtr, 'WrongStyle', array(self::TYPE_TAG));
            }

            return;
        }//end if

        $this->processDocBlockContent($phpcsFile, $stackPtr, $structure);
        $this->processVariableAssociation($phpcsFile, $stackPtr, $structure);
    }