29 private readonly IReadOnlyCollection<UniversalNotationFeature> _features;
31 private readonly IReadOnlyCollection<UniversalTemporalQualifier>
34 private readonly IReadOnlyCollection<UniversalSemanticCondition>
38 IEnumerable<UniversalNotationFeature>? features =
null,
39 IEnumerable<UniversalTemporalQualifier>? temporalQualifiers =
null,
40 IEnumerable<UniversalSemanticCondition>? semanticConditions =
null)
45 .OrderBy(feature => (
int)feature)
49 (temporalQualifiers ??
53 var canonicalQualifiers =
54 new List<UniversalTemporalQualifier>();
60 in qualifierArray.GroupBy(
61 qualifier => qualifier.Parameter))
65 .Select(qualifier => qualifier.Pattern)
69 if (patterns.Length > 1)
71 throw new ArgumentException(
72 "A beta field cannot contain conflicting temporal " +
73 $
"patterns for parameter '{group.Key}'.",
74 nameof(temporalQualifiers));
77 canonicalQualifiers.Add(
87 (
int)qualifier.Parameter)
91 (semanticConditions ??
94 .OrderBy(condition => (
int)condition)
98 public IReadOnlyCollection<UniversalNotationFeature>
Features =>
101 public IReadOnlyCollection<UniversalTemporalQualifier>
105 public IReadOnlyCollection<UniversalSemanticCondition>
110 _features.Contains(feature);
114 _semanticConditions.Contains(condition);
121 _temporalQualifiers.FirstOrDefault(
123 candidate.Parameter == parameter);
125 return qualifier is not
null;
148 string? schemeVersion =
null)
152 throw new ArgumentNullException(nameof(alpha));
156 throw new ArgumentNullException(nameof(beta));
160 throw new ArgumentNullException(nameof(gamma));
168 throw new NotSupportedException(
169 $
"Universal notation scheme version '{SchemeVersion}' " +
170 "is not supported.");
UniversalNotationGamma Gamma
UniversalNotationBeta Beta
UniversalLotSizingNotation(UniversalNotationAlpha alpha, UniversalNotationBeta beta, UniversalNotationGamma gamma, string? schemeVersion=null)
UniversalNotationAlpha Alpha
override string ToString()
Typed alpha-field representation of the physical network.
Alpha field: structural/environment characteristics.
UniversalItemCardinality ItemCardinality
UniversalProblemLevel ProblemLevel
UniversalNetworkNotation Network
ProductStructureType ProductStructureType
Beta field: constraints and modeled extensions.
IReadOnlyCollection< UniversalNotationFeature > Features
bool Contains(UniversalNotationFeature feature)
IReadOnlyCollection< UniversalSemanticCondition > SemanticConditions
UniversalNotationBeta(IEnumerable< UniversalNotationFeature >? features=null, IEnumerable< UniversalTemporalQualifier >? temporalQualifiers=null, IEnumerable< UniversalSemanticCondition >? semanticConditions=null)
IReadOnlyCollection< UniversalTemporalQualifier > TemporalQualifiers
bool ContainsSemanticCondition(UniversalSemanticCondition condition)
bool TryGetTemporalQualifier(UniversalTemporalParameter parameter, out UniversalTemporalQualifier? qualifier)
Gamma field: objective family.
UniversalObjectiveKind Objective
Renders the canonical text form of notation scheme version 1.
static string Render(UniversalLotSizingNotation notation)
Identifies the versioned LotSizingDataModel universal notation scheme.
static bool IsSupported(string version)
const string CurrentVersion
ProductStructureType
Identifies the structural category of a product bill-of-materials graph.
TemporalPatternType
Canonical temporal-pattern categories used by historical lot-sizing classifications such as Bitran-Ya...
UniversalSemanticCondition
Generic derived semantic conditions that may be required by a universal problem specification.
UniversalObjectiveKind
Objective family represented in the gamma field of notation v1.
UniversalTemporalParameter
Identifies a time-varying model parameter that may be qualified by a generic temporal pattern in univ...
UniversalNotationFeature
Feature vocabulary represented in the beta field of notation v1. Enum order is the canonical renderin...
UniversalProblemLevel
Canonical BOM-level token.
record UniversalTemporalQualifier
Qualifies one universal model-parameter family with a generic temporal pattern.
UniversalItemCardinality
Canonical item-cardinality token.