// 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 Core.Common.Base; namespace Ringtoets.Common.Data.Hydraulics { /// /// This class holds information about a calculation for a hydraulic boundary location. /// public class HydraulicBoundaryLocationCalculation : Observable { /// /// Creates a new instance of . /// /// The hydraulic boundary location the calculation belongs to. /// Thrown when is null. public HydraulicBoundaryLocationCalculation(HydraulicBoundaryLocation hydraulicBoundaryLocation) { if (hydraulicBoundaryLocation == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryLocation)); } HydraulicBoundaryLocation = hydraulicBoundaryLocation; InputParameters = new HydraulicBoundaryLocationCalculationInput(); } /// /// Gets the hydraulic boundary location the calculation belongs to. /// public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; } /// /// Gets the input of the hydraulic boundary location calculation. /// public HydraulicBoundaryLocationCalculationInput InputParameters { get; } /// /// Gets or sets the output of the hydraulic boundary location calculation. /// public HydraulicBoundaryLocationCalculationOutput Output { get; set; } /// /// Gets a value indicating whether this calculation item has output. /// public bool HasOutput { get { return Output != null; } } /// /// Gets a value indicating whether the calculation has already been calculated. /// /// true if the calculation is fully calculated, false otherwise. /// A calculation is fully calculated, depending on whether the illustration points /// are set to be calculated. public bool IsCalculated { get { return HasOutput && InputParameters.ShouldIllustrationPointsBeCalculated == Output.HasGeneralResult; } } } }