예제 #1
0
 private void AnalyzeSynchronously(IDexterPluginManager pluginManager, IAnalysisResultHandler cliAnalysisResultHandler, AnalysisConfig baseAnalysisConfig, IDexterClient client)
 {
     cliAnalysisResultHandler.HandleBeginningOfResultFile();
     foreach (string fileFullPath in sourceFileFullPathList)
     {
         AnalysisConfig analysisConfig = CreateAnalysisConfig(fileFullPath, cliAnalysisResultHandler, baseAnalysisConfig);
         DexterAnalyzer.Instance.RunSync(analysisConfig, pluginManager, client);
     }
     cliAnalysisResultHandler.HandleEndOfResultFile();
     cliAnalysisResultHandler.PrintLogAfterAnalyze();
 }
예제 #2
0
        private AnalysisConfig CreateAnalysisConfig(string fileFullPath, IAnalysisResultHandler cliAnalysisResultHandler, AnalysisConfig baseAnalysisConfig)
        {
            AnalysisConfig _config = new AnalysisEntityFactory().CopyAnalysisConfigWithoutSourcecode(baseAnalysisConfig);

            _config.ResultHandler      = cliAnalysisResultHandler;
            _config.SourceFileFullPath = fileFullPath;
            _config.GenerateFileNameWithSourceFileFullPath();
            _config.GenerateModulePath();

            return(_config);
        }
예제 #3
0
        private void Analyze(IDexterCLIOption cliOption, IDexterConfigFile configFile, IDexterClient client)
        {
            CliLog.Info(DexterLogConstant.GetStartingAnalysisMessage());

            AnalysisConfig         baseAnalysisConfig       = CreateBaseAnalysisConfig(cliOption, configFile);
            IAnalysisResultHandler cliAnalysisResultHandler = CreateCLIAnalysisResultHandler(client, cliOption);
            IDexterPluginManager   pluginManager            = LoadDexterPlugin(client, cliOption);

            InitSourceFileFullPathList(configFile, cliOption);
            AnalyzeSynchronously(pluginManager, cliAnalysisResultHandler, baseAnalysisConfig, client);
        }