Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter.Convert C# (CSharp) 메소드

Convert() 공개 메소드

Converts an Android Studio formatted log as input into a SARIF SarifLog using the output.
public Convert ( Stream input, IResultLogWriter output ) : void
input Stream The Android Studio formatted log.
output IResultLogWriter The SarifLog to write the output to.
리턴 void
        public override void Convert(Stream input, IResultLogWriter output)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            LogicalLocationsDictionary.Clear();

            XmlReaderSettings settings = new XmlReaderSettings
            {
                IgnoreWhitespace = true,
                IgnoreComments = true,
                IgnoreProcessingInstructions = true,
                NameTable = _nameTable,
                DtdProcessing = DtdProcessing.Ignore,
                XmlResolver = null
            };

            ISet<Result> results;
            using (XmlReader xmlReader = XmlReader.Create(input, settings))
            {
                results = ProcessAndroidStudioLog(xmlReader);
            }

            var tool = new Tool
            {
                Name = "AndroidStudio"
            };

            var fileInfoFactory = new FileInfoFactory(uri => MimeType.Java);
            Dictionary<string, FileData> fileDictionary = fileInfoFactory.Create(results);

            output.Initialize(id: null, correlationId: null);

            output.WriteTool(tool);

            if (fileDictionary != null && fileDictionary.Any())
            {
                output.WriteFiles(fileDictionary);
            }

            if (LogicalLocationsDictionary != null && LogicalLocationsDictionary.Any())
            {
                output.WriteLogicalLocations(LogicalLocationsDictionary);
            }

            output.OpenResults();
            output.WriteResults(results);
            output.CloseResults();
        }

Usage Example

예제 #1
0
 public void AndroidStudioConverter_Convert_Nulls()
 {
     _converter.Convert(null, null, LoggingOptions.None);
 }