2using System.Collections.Generic;
5using System.Threading.Tasks;
6using LotSizingDataModel.Instance;
18 private readonly IReadOnlyList<IStandardLotSizingConstraintFamilyBuilder>
36 IEnumerable<IStandardLotSizingConstraintFamilyBuilder> familyBuilders)
38 ArgumentNullException.ThrowIfNull(
42 familyBuilders.ToArray();
48 throw new InvalidOperationException(
49 "The standard constraint-family builder " +
50 "collection cannot contain a null entry.");
53 string[] duplicateIds =
57 builder.ConstraintFamilyId,
58 StringComparer.OrdinalIgnoreCase)
67 if (duplicateIds.Length > 0)
69 throw new InvalidOperationException(
70 "Duplicate standard constraint-family " +
71 "identifiers were registered: " +
84 public IReadOnlyList<IStandardLotSizingConstraintFamilyBuilder>
107 LotSizingInstance instance,
110 CancellationToken cancellationToken =
default)
112 ArgumentNullException.ThrowIfNull(
115 ArgumentNullException.ThrowIfNull(
118 ArgumentNullException.ThrowIfNull(
127 cancellationToken.ThrowIfCancellationRequested();
Provides the shared state required while constructing a solver-independent mathematical model.