// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Collections.Generic; namespace Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan.Output { /// /// This class contains the results of an Uplift Van calculation. /// public class UpliftVanCalculatorResult { /// /// Creates a new instance of . /// /// The sliding curve result. /// The calculation grid result. /// The messages returned by the calculation. /// The container of the properties for the . /// Thrown when any parameter is null. internal UpliftVanCalculatorResult(UpliftVanSlidingCurveResult slidingCurveResult, UpliftVanCalculationGridResult calculationGridResult, IEnumerable calculationMessages, ConstructionProperties properties) { if (slidingCurveResult == null) { throw new ArgumentNullException(nameof(slidingCurveResult)); } if (calculationGridResult == null) { throw new ArgumentNullException(nameof(calculationGridResult)); } if (calculationMessages == null) { throw new ArgumentNullException(nameof(calculationMessages)); } if (properties == null) { throw new ArgumentNullException(nameof(properties)); } SlidingCurveResult = slidingCurveResult; CalculationGridResult = calculationGridResult; FactorOfStability = properties.FactorOfStability; ZValue = properties.ZValue; ForbiddenZonesXEntryMin = properties.ForbiddenZonesXEntryMin; ForbiddenZonesXEntryMax = properties.ForbiddenZonesXEntryMax; CalculationMessages = calculationMessages; } /// /// Container for properties for constructing a . /// internal class ConstructionProperties { /// /// Creates a new instance of . /// public ConstructionProperties() { FactorOfStability = double.NaN; ZValue = double.NaN; ForbiddenZonesXEntryMin = double.NaN; ForbiddenZonesXEntryMax = double.NaN; } /// /// Gets or sets the factor of stability. /// public double FactorOfStability { internal get; set; } /// /// Gets or sets the z value. /// public double ZValue { internal get; set; } /// /// Gets or sets the forbidden zones x entry min. /// public double ForbiddenZonesXEntryMin { internal get; set; } /// /// Gets or sets the forbidden zones x entry max. /// public double ForbiddenZonesXEntryMax { internal get; set; } } #region Properties /// /// Gets the sliding curve result. /// public UpliftVanSlidingCurveResult SlidingCurveResult { get; } /// /// Gets the calculation grid result. /// public UpliftVanCalculationGridResult CalculationGridResult { get; } /// /// Gets the factor of stability. /// public double FactorOfStability { get; } /// /// Gets the z value. /// public double ZValue { get; } /// /// Gets the forbidden zones x entry min. /// public double ForbiddenZonesXEntryMin { get; } /// /// Gets the forbidden zones x entry max. /// public double ForbiddenZonesXEntryMax { get; } /// /// Gets the messages returned by the kernel during /// the calculation, if any. /// public IEnumerable CalculationMessages { get; } #endregion } }