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; }
}
}