def __init__(self,
                 logger,
                 debug_log,
                 input_dir,
                 output_file,
                 scan_log,
                 verbose_log,
                 fileID):
        '''
        Initialize the class and its variables.
        '''
        self.logger = logger
        self.debug_log = debug_log
        self.input_dir = input_dir
        self.output_file = output_file
        self.scan_log = scan_log
        self.verbose_log = verbose_log
        self.fileID = fileID

        self.processedFileCount = 0
        self.skippedFiles = []

        self.softwareParser = TsSoftwareParser(
            self.logger,
            debug_log,
            input_dir,
            output_file,
            scan_log,
            verbose_log,
            fileID)
class TsSoftwareMetrics(object):
    '''
    Class of utility functions to produce a report of the number of
    source code files, lines of code, blank/comment lines,
    word count and character count.
    '''

    #-----------------------------------------------------------------------

    def __init__(self,
                 logger,
                 debug_log,
                 input_dir,
                 output_file,
                 scan_log,
                 verbose_log,
                 fileID):
        '''
        Initialize the class and its variables.
        '''
        self.logger = logger
        self.debug_log = debug_log
        self.input_dir = input_dir
        self.output_file = output_file
        self.scan_log = scan_log
        self.verbose_log = verbose_log
        self.fileID = fileID

        self.processedFileCount = 0
        self.skippedFiles = []

        self.softwareParser = TsSoftwareParser(
            self.logger,
            debug_log,
            input_dir,
            output_file,
            scan_log,
            verbose_log,
            fileID)

    #-----------------------------------------------------------------------

    def tsLocSMGetDirectoryData(self):
        '''
        Controls the file selection and display of software devemopment
        metrics.
        '''
        (myFileCount,
         myCodeLineCount,
         myCommentLineCount,
         myLineCount,
         myWordCount,
         myCharacterCount,
         myValues) = self.softwareParser.tsLocSPGetDirectoryData()

        return (myFileCount,
                myCodeLineCount,
                myCommentLineCount,
                myLineCount,
                myWordCount,
                myCharacterCount,
                myValues)
 
    #-----------------------------------------------------------------------

    def tsLocSMReportResults(self,
                             fileCount,
                             codeLineCount,
                             commentLineCount,
                             lineCount,
                             wordCount,
                             characterCount,
                             values):
        '''
        Analyze and display software development metrics.
        '''
        self.softwareParser.tsLocSPReportResults(
            fileCount,
            codeLineCount,
            commentLineCount,
            lineCount,
            wordCount,
            characterCount,
            values)