41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
|
|
namespace StellaOps.Scanner.Analyzers.OS;
|
|
|
|
public sealed class OSPackageAnalyzerResult
|
|
{
|
|
private static readonly IReadOnlyList<OSPackageRecord> EmptyPackages =
|
|
new ReadOnlyCollection<OSPackageRecord>(Array.Empty<OSPackageRecord>());
|
|
|
|
private static readonly IReadOnlyList<AnalyzerWarning> EmptyWarnings =
|
|
new ReadOnlyCollection<AnalyzerWarning>(Array.Empty<AnalyzerWarning>());
|
|
|
|
public OSPackageAnalyzerResult(
|
|
string analyzerId,
|
|
IEnumerable<OSPackageRecord>? packages,
|
|
OSAnalyzerTelemetry telemetry,
|
|
IEnumerable<AnalyzerWarning>? warnings = null)
|
|
{
|
|
ArgumentException.ThrowIfNullOrWhiteSpace(analyzerId);
|
|
AnalyzerId = analyzerId.Trim();
|
|
Packages = packages is null
|
|
? EmptyPackages
|
|
: new ReadOnlyCollection<OSPackageRecord>(packages.ToArray());
|
|
Telemetry = telemetry;
|
|
Warnings = warnings is null
|
|
? EmptyWarnings
|
|
: new ReadOnlyCollection<AnalyzerWarning>(warnings.ToArray());
|
|
}
|
|
|
|
public string AnalyzerId { get; }
|
|
|
|
public IReadOnlyList<OSPackageRecord> Packages { get; }
|
|
|
|
public OSAnalyzerTelemetry Telemetry { get; }
|
|
|
|
public IReadOnlyList<AnalyzerWarning> Warnings { get; }
|
|
}
|