LotSizingDataModel.Instance 2.0.1
Lot-sizing instance representation, descriptors and problem characterization.
Loading...
Searching...
No Matches
InstanceModelCheckResult.cs
Go to the documentation of this file.
1using System.Collections.ObjectModel;
2
4
5/// <summary>
6/// Represents the complete result of semantic instance validation.
7/// </summary>
8public sealed class InstanceModelCheckResult
9{
10 private readonly IReadOnlyList<InstanceDiagnostic> _diagnostics;
11
13 IEnumerable<InstanceDiagnostic> diagnostics)
14 {
15 ArgumentNullException.ThrowIfNull(diagnostics);
16
17 InstanceDiagnostic[] materialized =
18 diagnostics.ToArray();
19
20 _diagnostics =
21 new ReadOnlyCollection<InstanceDiagnostic>(
22 materialized);
23
25 materialized.Any(
26 diagnostic => diagnostic.IsBlocking);
27
29 materialized.Any(
30 diagnostic =>
31 diagnostic.Severity ==
33
36 canSaveDraft: true,
37 canValidate: true,
38 canClassify: !HasBlockingIssues,
39 canGenerateNotation: !HasBlockingIssues,
40 canSolve: !HasBlockingIssues,
41 canExportAsValidatedInstance:
43 }
44
45 /// <summary>
46 /// Gets all diagnostics in deterministic evaluation order.
47 /// </summary>
48 public IReadOnlyList<InstanceDiagnostic> Diagnostics =>
49 _diagnostics;
50
51 /// <summary>
52 /// Gets a value indicating whether at least one Error or
53 /// Fatal diagnostic exists.
54 /// </summary>
55 public bool HasBlockingIssues { get; }
56
57 /// <summary>
58 /// Gets a value indicating whether at least one warning exists.
59 /// </summary>
60 public bool HasWarnings { get; }
61
62 /// <summary>
63 /// Gets a value indicating whether the instance has no
64 /// blocking structural or semantic issue.
65 /// </summary>
66 public bool IsValid => !HasBlockingIssues;
67
68 /// <summary>
69 /// Gets downstream-operation capabilities derived from the
70 /// validation result.
71 /// </summary>
73
74 /// <summary>
75 /// Gets the number of blocking diagnostics.
76 /// </summary>
77 public int BlockingIssueCount =>
78 Diagnostics.Count(
79 diagnostic => diagnostic.IsBlocking);
80
81 /// <summary>
82 /// Gets the number of warnings.
83 /// </summary>
84 public int WarningCount =>
85 Diagnostics.Count(
86 diagnostic =>
87 diagnostic.Severity ==
89}
Represents one structured diagnostic produced while checking the semantic validity of a lot-sizing in...
bool HasWarnings
Gets a value indicating whether at least one warning exists.
InstanceModelCheckResult(IEnumerable< InstanceDiagnostic > diagnostics)
InstanceValidationCapabilities Capabilities
Gets downstream-operation capabilities derived from the validation result.
IReadOnlyList< InstanceDiagnostic > Diagnostics
Gets all diagnostics in deterministic evaluation order.
bool HasBlockingIssues
Gets a value indicating whether at least one Error or Fatal diagnostic exists.
bool IsValid
Gets a value indicating whether the instance has no blocking structural or semantic issue.
Describes which downstream operations are permitted after instance-model validation.
InstanceDiagnosticSeverity
Indicates the severity of one semantic instance diagnostic.