using System; using Ringtoets.Common.Data.FailureMechanism; namespace Ringtoets.Integration.IO.Assembly { /// /// Base implementation to hold all information for exporting assembly results for a failure mechanism section. /// /// The type of . public abstract class ExportableAggregatedFailureMechanismSectionAssemblyResultBase where TSectionAssemblyResult : ExportableSectionAssemblyResult { /// /// Creates a new instance of . /// /// The failure mechanism section. /// The simple assembly result of the failure mechanism section. /// The tailor made assembly result of the failure mechanism section. /// The combined assembly result of the failure mechanism section. /// Thrown when any parameter is null. protected ExportableAggregatedFailureMechanismSectionAssemblyResultBase(FailureMechanismSection failureMechanismSection, TSectionAssemblyResult simpleAssembly, TSectionAssemblyResult tailorMadeAssembly, TSectionAssemblyResult combinedAssembly) { if (failureMechanismSection == null) { throw new ArgumentNullException(nameof(failureMechanismSection)); } if (simpleAssembly == null) { throw new ArgumentNullException(nameof(simpleAssembly)); } if (tailorMadeAssembly == null) { throw new ArgumentNullException(nameof(tailorMadeAssembly)); } if (combinedAssembly == null) { throw new ArgumentNullException(nameof(combinedAssembly)); } FailureMechanismSection = failureMechanismSection; SimpleAssembly = simpleAssembly; TailorMadeAssembly = tailorMadeAssembly; CombinedAssembly = combinedAssembly; } /// /// Gets the failure mechanism section. /// public FailureMechanismSection FailureMechanismSection { get; } /// /// Gets the simple assembly result. /// public TSectionAssemblyResult SimpleAssembly { get; } /// /// Gets the tailor made assembly result. /// public TSectionAssemblyResult TailorMadeAssembly { get; } /// /// Gets the combined assembly result. /// public TSectionAssemblyResult CombinedAssembly { get; } } }