// run sequence of filters on findings (note that (if 4th param == true) saveQuery will remove the matched // findings from tracesToFilter public void task2_filterFindings(KAnalysisArtifacts analysisArtifacts, List <IO2Finding> tracesToFilter, string targetFolder, string fileName) { foreach (var sourceSink in analysisArtifacts.phase_3.task2_sourceSink) { XUtils_Analysis.saveQuery(tracesToFilter, targetFolder, fileName, sourceSink.Source, sourceSink.Sink, sourceSink.RemoveMatches); } // save what was left (i.e. findings that didn't match the above filters) in a separate file if (tracesToFilter.Count > 0) { O2Cmd.log.write("After task2 filters there were {0} findings that matched no filter", tracesToFilter.Count); var targetFile = Path.Combine(targetFolder, "__NO FILTER__" + " - " + fileName + ".ozasmt"); XUtils_Findings_v0_1.saveFindings(tracesToFilter, targetFile); } }