Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs
===================================================================
diff -u -rf03b47d0d73983de35188874a094ae07f1ea13fa -r5a34759978bfb0c2982463f8f8c2adfc29b1c666
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs (.../MacroStabilityInwardsCalculationConfigurationWriter.cs) (revision f03b47d0d73983de35188874a094ae07f1ea13fa)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs (.../MacroStabilityInwardsCalculationConfigurationWriter.cs) (revision 5a34759978bfb0c2982463f8f8c2adfc29b1c666)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Xml;
using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.Configurations.Export;
@@ -29,44 +30,44 @@
///
/// Writer for writing a macro stability inwards calculation configuration to XML.
///
- public class MacroStabilityInwardsCalculationConfigurationWriter : CalculationConfigurationWriter
+ public class MacroStabilityInwardsCalculationConfigurationWriter : SchemaCalculationConfigurationWriter
{
- protected override void WriteCalculation(MacroStabilityInwardsCalculation calculation, XmlWriter writer)
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The path of the file to write to.
+ /// Thrown when is invalid.
+ /// A valid path:
+ ///
+ /// - is not empty or null,
+ /// - does not consist out of only whitespace characters,
+ /// - does not contain an invalid character,
+ /// - does not end with a directory or path separator (empty file name).
+ ///
+ public MacroStabilityInwardsCalculationConfigurationWriter(string filePath) : base(filePath) {}
+
+ protected override void WriteCalculation(MacroStabilityInwardsCalculationConfiguration configuration, XmlWriter writer)
{
writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement);
- writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, calculation.Name);
+ writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, configuration.Name);
- MacroStabilityInwardsInput calculationInputParameters = calculation.InputParameters;
+ WriteElementWhenContentAvailable(writer,
+ MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement,
+ configuration.AssessmentLevel);
+ WriteElementWhenContentAvailable(writer,
+ ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
+ configuration.HydraulicBoundaryLocation);
- if (calculationInputParameters.UseAssessmentLevelManualInput)
- {
- writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement,
- XmlConvert.ToString(calculationInputParameters.AssessmentLevel));
- }
- else if (calculationInputParameters.HydraulicBoundaryLocation != null)
- {
- writer.WriteElementString(ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
- calculationInputParameters.HydraulicBoundaryLocation.Name);
- }
+ WriteElementWhenContentAvailable(writer,
+ MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.SurfaceLineElement,
+ configuration.SurfaceLine);
+ WriteElementWhenContentAvailable(writer,
+ MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement,
+ configuration.StochasticSoilModel);
+ WriteElementWhenContentAvailable(writer,
+ MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement,
+ configuration.StochasticSoilProfile);
- if (calculationInputParameters.SurfaceLine != null)
- {
- writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.SurfaceLineElement,
- calculationInputParameters.SurfaceLine.Name);
- }
-
- if (calculationInputParameters.StochasticSoilModel != null)
- {
- writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement,
- calculationInputParameters.StochasticSoilModel.Name);
-
- if (calculationInputParameters.StochasticSoilProfile?.SoilProfile != null)
- {
- writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement,
- calculationInputParameters.StochasticSoilProfile.SoilProfile.Name);
- }
- }
-
writer.WriteEndElement();
}
}