// Copyright (C) Stichting Deltares 2016. 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 Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.IO.Readers; using Ringtoets.Revetment.Data; namespace Ringtoets.Revetment.IO.Readers { /// /// Class that represents a wave conditions calculation that is read via . /// public class ReadWaveConditionsCalculation : IReadConfigurationItem { /// /// Creates a new instance of . /// /// The container of the properties for the . /// Thrown when is null. public ReadWaveConditionsCalculation(ConstructionProperties constructionProperties) { if (constructionProperties == null) { throw new ArgumentNullException(nameof(constructionProperties)); } Name = constructionProperties.Name; HydraulicBoundaryLocation = constructionProperties.HydraulicBoundaryLocation; UpperBoundaryRevetment = constructionProperties.UpperBoundaryRevetment; LowerBoundaryRevetment = constructionProperties.LowerBoundaryRevetment; UpperBoundaryWaterLevels = constructionProperties.UpperBoundaryWaterLevels; LowerBoundaryWaterLevels = constructionProperties.LowerBoundaryWaterLevels; StepSize = constructionProperties.StepSize; ForeshoreProfile = constructionProperties.ForeshoreProfile; Orientation = constructionProperties.Orientation; UseBreakWater = constructionProperties.UseBreakWater; BreakWaterType = constructionProperties.BreakWaterType; BreakWaterHeight = constructionProperties.BreakWaterHeight; UseForeshore = constructionProperties.UseForeshore; } /// /// Gets the name of the hydraulic boundary location of the read calculation. /// public string HydraulicBoundaryLocation { get; } /// /// Gets the upper boundary of the revetment of the read calculation. /// public double? UpperBoundaryRevetment { get; } /// /// Gets the lower boundary of the revetment of the read calculation. /// public double? LowerBoundaryRevetment { get; } /// /// Gets the upper boundary of the water levels of the read calculation. /// public double? UpperBoundaryWaterLevels { get; } /// /// Gets the lower boundary of the water levels of the read calculation. /// public double? LowerBoundaryWaterLevels { get; } /// /// Gets the step size of the read calculation. /// public WaveConditionsInputStepSize? StepSize { get; } /// /// Gets the name of the foreshore profile of the read calculation. /// public string ForeshoreProfile { get; } /// /// Gets the orientation of the read calculation. /// public double? Orientation { get; } /// /// Gets whether the breakwater should be used for the read calculation. /// public bool? UseBreakWater { get; } /// /// Gets the breakwater type of the read calculation. /// public BreakWaterType? BreakWaterType { get; } /// /// Gets the breakwater height of the read calculation. /// public double? BreakWaterHeight { get; } /// /// Gets whether the foreshore should be used for the read calculation. /// public bool? UseForeshore { get; } public string Name { get; } /// /// Class holding the various construction parameters for . /// public class ConstructionProperties { /// /// Gets or sets the value for . /// public string Name { internal get; set; } /// /// Gets or sets the value for . /// public string HydraulicBoundaryLocation { internal get; set; } /// /// Gets or sets the value for . /// public double? UpperBoundaryRevetment { internal get; set; } /// /// Gets or sets the value for . /// public double? LowerBoundaryRevetment { internal get; set; } /// /// Gets or sets the value for . /// public double? UpperBoundaryWaterLevels { internal get; set; } /// /// Gets or sets the value for . /// public double? LowerBoundaryWaterLevels { internal get; set; } /// /// Gets or sets the value for . /// public WaveConditionsInputStepSize? StepSize{ internal get; set; } /// /// Gets or sets the value for . /// public string ForeshoreProfile { internal get; set; } /// /// Gets or sets the value for . /// public double? Orientation { internal get; set; } /// /// Gets or sets the value for . /// public bool? UseBreakWater { internal get; set; } /// /// Gets or sets the value for . /// public BreakWaterType? BreakWaterType { internal get; set; } /// /// Gets or sets the value for . /// public double? BreakWaterHeight { internal get; set; } /// /// Gets or sets the value for . /// public bool? UseForeshore { internal get; set; } } } }