Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationWriter.cs =================================================================== diff -u -r3a60f4df420a7669a047880a924bf4a0ff67c265 -r408972eaea004e68ac9fcaa892c71a47f3521b24 --- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationWriter.cs (.../WaveConditionsCalculationConfigurationWriter.cs) (revision 3a60f4df420a7669a047880a924bf4a0ff67c265) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationWriter.cs (.../WaveConditionsCalculationConfigurationWriter.cs) (revision 408972eaea004e68ac9fcaa892c71a47f3521b24) @@ -24,18 +24,20 @@ using Ringtoets.Common.IO.Configurations; using Ringtoets.Common.IO.Configurations.Export; using Ringtoets.Revetment.Data; -using Ringtoets.Revetment.IO.Configurations.Helpers; +using Ringtoets.Revetment.IO.Configurations.Converters; namespace Ringtoets.Revetment.IO.Configurations { /// /// Base implementation of a writer for calculations that contain as input, /// to XML format. /// - public class WaveConditionsCalculationConfigurationWriter : CalculationConfigurationWriter + /// The type of configuration. + public abstract class WaveConditionsCalculationConfigurationWriter : CalculationConfigurationWriter + where T : WaveConditionsCalculationConfiguration { /// - /// Creates a new instance of . + /// Creates a new instance of . /// /// The path of the file to write to. /// Thrown when is invalid. @@ -46,10 +48,10 @@ /// does not contain an invalid character, /// does not end with a directory or path separator (empty file name). /// - public WaveConditionsCalculationConfigurationWriter(string filePath) + protected WaveConditionsCalculationConfigurationWriter(string filePath) : base(filePath) {} - protected override void WriteCalculation(WaveConditionsCalculationConfiguration configuration, XmlWriter writer) + protected override void WriteCalculation(T configuration, XmlWriter writer) { writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement); writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, configuration.Name); @@ -59,6 +61,8 @@ ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, configuration.HydraulicBoundaryLocationName); + WriteConfigurationCategoryTypeWhenAvailable(writer, configuration); + WriteElementWhenContentAvailable( writer, WaveConditionsCalculationConfigurationSchemaIdentifiers.UpperBoundaryRevetment, @@ -75,7 +79,7 @@ writer, WaveConditionsCalculationConfigurationSchemaIdentifiers.LowerBoundaryWaterLevels, configuration.LowerBoundaryWaterLevels); - WriteConfigurationLoadSchematizationTypeWhenAvailable( + WriteConfigurationWaveConditionsInputStepSizeWhenAvailable( writer, configuration.StepSize); @@ -95,6 +99,17 @@ } /// + /// Writes the category type in XML format to file. + /// + /// The writer to use for writing. + /// The configuration to get the category type from. + /// /// Thrown when the + /// is closed. + /// Thrown when the conversion of the category type + /// cannot be performed. + protected abstract void WriteConfigurationCategoryTypeWhenAvailable(XmlWriter writer, T configuration); + + /// /// Writes the in XML format to file. /// /// The writer to use for writing. @@ -103,7 +118,7 @@ /// is closed. /// Thrown when the conversion /// of cannot be performed. - private static void WriteConfigurationLoadSchematizationTypeWhenAvailable( + private static void WriteConfigurationWaveConditionsInputStepSizeWhenAvailable( XmlWriter writer, ConfigurationWaveConditionsInputStepSize? stepSize) {