// 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 System.Collections.ObjectModel; using Ringtoets.Piping.Primitives; namespace Ringtoets.Piping.IO.Builders { /// /// Helps in the creation of a . /// internal class SoilProfileBuilder1D { private readonly Collection layers; private readonly string name; private readonly double bottom; private readonly long soilProfileId; internal SoilProfileBuilder1D(string name, double bottom, long soilProfileId) { this.name = name; this.bottom = bottom; this.soilProfileId = soilProfileId; layers = new Collection(); } /// /// Creates a new instances of the based on the layer definitions. /// /// A new . /// Thrown when no layers have been added through . internal PipingSoilProfile Build() { try { return new PipingSoilProfile(name, bottom, layers, soilProfileId); } catch (ArgumentException e) { throw new SoilProfileBuilderException(e.Message, e); } } /// /// Adds a new , which will be added to the . /// /// The to add. internal void Add(PipingSoilLayer soilLayer) { layers.Add(soilLayer); } } }