Index: Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationExporter.cs =================================================================== diff -u -rf5cd3b2ee9b7436f606ee6bc027b795accf0549d -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationExporter.cs (.../ClosingStructuresCalculationConfigurationExporter.cs) (revision f5cd3b2ee9b7436f606ee6bc027b795accf0549d) +++ Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.IO/Configurations/ClosingStructuresCalculationConfigurationExporter.cs (.../ClosingStructuresCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -47,7 +47,7 @@ /// Thrown when is null. /// Thrown when is invalid. public ClosingStructuresCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new ClosingStructuresCalculationConfigurationWriter(filePath)) {} protected override ClosingStructuresCalculationConfiguration ToConfiguration(StructuresCalculation calculation) { @@ -90,10 +90,5 @@ return calculationConfiguration; } - - protected override ClosingStructuresCalculationConfigurationWriter CreateWriter(string filePath) - { - return new ClosingStructuresCalculationConfigurationWriter(filePath); - } } } \ No newline at end of file Index: Riskeer/Common/src/Riskeer.Common.IO/Configurations/Export/CalculationConfigurationExporter.cs =================================================================== diff -u -r98cff573b5f3d89567631e4d5b4404ad4448c24f -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Common/src/Riskeer.Common.IO/Configurations/Export/CalculationConfigurationExporter.cs (.../CalculationConfigurationExporter.cs) (revision 98cff573b5f3d89567631e4d5b4404ad4448c24f) +++ Riskeer/Common/src/Riskeer.Common.IO/Configurations/Export/CalculationConfigurationExporter.cs (.../CalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -46,29 +46,39 @@ where TConfiguration : class, IConfigurationItem { private static readonly ILog log = LogManager.GetLogger(typeof(CalculationConfigurationExporter)); + private readonly IEnumerable calculations; + private readonly TWriter writer; private IEnumerable configuration; - private TWriter writer; /// /// Creates a new instance of . /// /// The hierarchy of calculations to export. - /// The path of the XML file to export to. - /// Thrown when is null. - /// Thrown when is invalid or when any element - /// of is not a nor a . - protected CalculationConfigurationExporter(IEnumerable calculations, string filePath) + /// The writer to use. + /// Thrown when any parameter is null. + protected CalculationConfigurationExporter(IEnumerable calculations, TWriter writer) { if (calculations == null) { throw new ArgumentNullException(nameof(calculations)); } - Initialize(calculations, filePath); + if (writer == null) + { + throw new ArgumentNullException(nameof(writer)); + } + + this.calculations = calculations; + this.writer = writer; } + /// + /// Thrown when any element of + /// is not a nor a . public bool Export() { + configuration = ToConfiguration(calculations).ToArray(); + try { writer.Write(configuration); @@ -83,38 +93,24 @@ } /// - /// Creates the writer that will be used in the . - /// - /// The path of the file to export to. - /// A new . - /// Thrown when is invalid. - protected abstract TWriter CreateWriter(string filePath); - - /// /// Converts the to a . /// /// The to convert. /// A new instance of with values set equal /// to properties of . protected abstract TConfiguration ToConfiguration(TCalculation calculation); - private void Initialize(IEnumerable calculations, string filePath) - { - writer = CreateWriter(filePath); - configuration = ToConfiguration(calculations).ToArray(); - } - /// /// Converts a sequence of into a sequence of . /// - /// The sequence to be converted into a sequence of + /// The sequence to be converted into a sequence of /// . /// The converted of . - /// Thrown when an element of + /// Thrown when an element of /// isn't a nor a . - private IEnumerable ToConfiguration(IEnumerable calculations) + private IEnumerable ToConfiguration(IEnumerable calculationsToConvert) { - foreach (ICalculationBase child in calculations) + foreach (ICalculationBase child in calculationsToConvert) { switch (child) { Index: Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Export/CalculationConfigurationExporterTest.cs =================================================================== diff -u -rc4311504aa83ba59c5a7e80c0e9bc26650986c05 -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Export/CalculationConfigurationExporterTest.cs (.../CalculationConfigurationExporterTest.cs) (revision c4311504aa83ba59c5a7e80c0e9bc26650986c05) +++ Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Export/CalculationConfigurationExporterTest.cs (.../CalculationConfigurationExporterTest.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -39,16 +39,19 @@ TestConfigurationItem> { [Test] - public void Constructor_NotSupportedCalculation_ThrowsArgumentException() + public void Export_NotSupportedCalculation_ThrowsArgumentException() { - // Call - TestDelegate test = () => new SimpleCalculationConfigurationExporter(new[] + // Setup + var exporter = new SimpleCalculationConfigurationExporter(new[] { new NotSupportedCalculation() }, "test.xml"); + // Call + void Call() => exporter.Export(); + // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual($"Cannot export calculation of type '{typeof(NotSupportedCalculation)}' using this exporter.", exception.Message); } @@ -66,13 +69,7 @@ { public string Name { get; set; } - public IEnumerable Observers - { - get - { - throw new NotImplementedException(); - } - } + public IEnumerable Observers => throw new NotImplementedException(); public void Attach(IObserver observer) { @@ -99,13 +96,9 @@ public class SimpleCalculationConfigurationExporter : CalculationConfigurationExporter { - public SimpleCalculationConfigurationExporter(IEnumerable calculations, string filePath) : base(calculations, filePath) {} + public SimpleCalculationConfigurationExporter(IEnumerable calculations, string filePath) + : base(calculations, new TestCalculationConfigurationWriter(filePath)) {} - protected override TestCalculationConfigurationWriter CreateWriter(string filePath) - { - return new TestCalculationConfigurationWriter(filePath); - } - protected override TestConfigurationItem ToConfiguration(TestCalculation calculation) { return null; Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs =================================================================== diff -u -r1f76045f08612f7b8259c460771c7cdbdb5447a7 -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision 1f76045f08612f7b8259c460771c7cdbdb5447a7) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -48,13 +48,8 @@ /// Thrown when is null. /// Thrown when is invalid. public GrassCoverErosionInwardsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath)) {} - protected override GrassCoverErosionInwardsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath); - } - protected override GrassCoverErosionInwardsCalculationConfiguration ToConfiguration(GrassCoverErosionInwardsCalculation calculation) { GrassCoverErosionInwardsInput input = calculation.InputParameters; Index: Riskeer/GrassCoverErosionOutwards/src/Riskeer.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter.cs =================================================================== diff -u -rda26d7b509b9f7b65ba169008b9efc78f76488cb -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/GrassCoverErosionOutwards/src/Riskeer.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter.cs) (revision da26d7b509b9f7b65ba169008b9efc78f76488cb) +++ Riskeer/GrassCoverErosionOutwards/src/Riskeer.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; using Riskeer.Common.Data.Calculation; using Riskeer.GrassCoverErosionOutwards.Data; @@ -39,14 +40,10 @@ /// /// Creates a new instance of . /// + /// Thrown when is invalid. public GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationWriter(filePath)) {} - protected override GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationWriter(filePath); - } - protected override GrassCoverErosionOutwardsWaveConditionsCalculationConfiguration ToConfiguration(GrassCoverErosionOutwardsWaveConditionsCalculation calculation) { var configuration = new GrassCoverErosionOutwardsWaveConditionsCalculationConfiguration(calculation.Name); Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationExporter.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationExporter.cs (.../HeightStructuresCalculationConfigurationExporter.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.IO/Configurations/HeightStructuresCalculationConfigurationExporter.cs (.../HeightStructuresCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -46,7 +46,7 @@ /// Thrown when is null. /// Thrown when is invalid. public HeightStructuresCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new HeightStructuresCalculationConfigurationWriter(filePath)) {} protected override HeightStructuresCalculationConfiguration ToConfiguration(StructuresCalculation calculation) { @@ -77,10 +77,5 @@ return calculationConfiguration; } - - protected override HeightStructuresCalculationConfigurationWriter CreateWriter(string filePath) - { - return new HeightStructuresCalculationConfigurationWriter(filePath); - } } } \ No newline at end of file Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationExporter.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationExporter.cs (.../MacroStabilityInwardsCalculationConfigurationExporter.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationExporter.cs (.../MacroStabilityInwardsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -47,13 +47,8 @@ /// Thrown when is null. /// Thrown when is invalid. public MacroStabilityInwardsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new MacroStabilityInwardsCalculationConfigurationWriter(filePath)) {} - protected override MacroStabilityInwardsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new MacroStabilityInwardsCalculationConfigurationWriter(filePath); - } - protected override MacroStabilityInwardsCalculationConfiguration ToConfiguration(MacroStabilityInwardsCalculationScenario calculation) { MacroStabilityInwardsInput input = calculation.InputParameters; Index: Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -45,13 +45,8 @@ /// Thrown when is null. /// Thrown when is invalid. public PipingCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new PipingCalculationConfigurationWriter(filePath)) {} - protected override PipingCalculationConfigurationWriter CreateWriter(string filePath) - { - return new PipingCalculationConfigurationWriter(filePath); - } - protected override PipingCalculationConfiguration ToConfiguration(PipingCalculationScenario calculation) { PipingInput input = calculation.InputParameters; Index: Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter.cs =================================================================== diff -u -r3b8d326b0e00bc96a8f71ebad156ec422be92558 -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter.cs) (revision 3b8d326b0e00bc96a8f71ebad156ec422be92558) +++ Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; using Riskeer.Common.Data.Calculation; using Riskeer.Revetment.Data; @@ -38,14 +39,10 @@ /// /// Creates a new instance of . /// + /// Thrown when is invalid. public AssessmentSectionCategoryWaveConditionsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new AssessmentSectionCategoryWaveConditionsCalculationConfigurationWriter(filePath)) {} - protected override AssessmentSectionCategoryWaveConditionsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new AssessmentSectionCategoryWaveConditionsCalculationConfigurationWriter(filePath); - } - protected override AssessmentSectionCategoryWaveConditionsCalculationConfiguration ToConfiguration( ICalculation calculation) { Index: Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs (.../WaveConditionsCalculationConfigurationExporter.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Revetment/src/Riskeer.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs (.../WaveConditionsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -47,11 +47,10 @@ /// Creates a new instance of . /// /// The hierarchy of calculations to export. - /// The path of the XML file to export to. + /// The writer to use. /// Thrown when is null. - /// Thrown when is invalid. - protected WaveConditionsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + protected WaveConditionsCalculationConfigurationExporter(IEnumerable calculations, TWaveConditionsCalculationConfigurationWriter writer) + : base(calculations, writer) {} /// /// Sets the properties of a to a . Index: Riskeer/Revetment/test/Riskeer.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationExporterTest.cs =================================================================== diff -u -r459a28726e1afac77043a810cdf1aa3144c7140b -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/Revetment/test/Riskeer.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationExporterTest.cs (.../WaveConditionsCalculationConfigurationExporterTest.cs) (revision 459a28726e1afac77043a810cdf1aa3144c7140b) +++ Riskeer/Revetment/test/Riskeer.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationExporterTest.cs (.../WaveConditionsCalculationConfigurationExporterTest.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -50,13 +50,8 @@ private class TestWaveConditionsCalculationConfigurationExporter : WaveConditionsCalculationConfigurationExporter, WaveConditionsCalculationConfiguration, ICalculation> { public TestWaveConditionsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new TestWaveConditionsCalculationConfigurationWriter(filePath)) {} - protected override WaveConditionsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new TestWaveConditionsCalculationConfigurationWriter(filePath); - } - protected override WaveConditionsCalculationConfiguration ToConfiguration(ICalculation calculation) { return new WaveConditionsCalculationConfiguration("test"); Index: Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationExporter.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationExporter.cs (.../StabilityPointStructuresCalculationConfigurationExporter.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.IO/Configurations/StabilityPointStructuresCalculationConfigurationExporter.cs (.../StabilityPointStructuresCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -47,13 +47,8 @@ /// Thrown when is null. /// Thrown when is invalid. public StabilityPointStructuresCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new StabilityPointStructuresCalculationConfigurationWriter(filePath)) {} - protected override StabilityPointStructuresCalculationConfigurationWriter CreateWriter(string filePath) - { - return new StabilityPointStructuresCalculationConfigurationWriter(filePath); - } - protected override StabilityPointStructuresCalculationConfiguration ToConfiguration(StructuresCalculation calculation) { StabilityPointStructuresInput input = calculation.InputParameters; Index: Riskeer/StabilityStoneCover/src/Riskeer.StabilityStoneCover.IO/Configurations/StabilityStoneCoverWaveConditionsCalculationConfigurationExporter.cs =================================================================== diff -u -r8f172e35ecf9d0b05a49e39a39c42420d054c900 -rdd20c539bb48fde32e3a0fe7fbee58260f37a73c --- Riskeer/StabilityStoneCover/src/Riskeer.StabilityStoneCover.IO/Configurations/StabilityStoneCoverWaveConditionsCalculationConfigurationExporter.cs (.../StabilityStoneCoverWaveConditionsCalculationConfigurationExporter.cs) (revision 8f172e35ecf9d0b05a49e39a39c42420d054c900) +++ Riskeer/StabilityStoneCover/src/Riskeer.StabilityStoneCover.IO/Configurations/StabilityStoneCoverWaveConditionsCalculationConfigurationExporter.cs (.../StabilityStoneCoverWaveConditionsCalculationConfigurationExporter.cs) (revision dd20c539bb48fde32e3a0fe7fbee58260f37a73c) @@ -35,21 +35,14 @@ public class StabilityStoneCoverWaveConditionsCalculationConfigurationExporter : WaveConditionsCalculationConfigurationExporter> { + /// /// /// Creates a new instance of . /// - /// The hierarchy of calculations to export. - /// The path of the XML file to export to. - /// Thrown when is null. /// Thrown when is invalid. public StabilityStoneCoverWaveConditionsCalculationConfigurationExporter(IEnumerable calculations, string filePath) - : base(calculations, filePath) {} + : base(calculations, new StabilityStoneCoverWaveConditionsCalculationConfigurationWriter(filePath)) {} - protected override StabilityStoneCoverWaveConditionsCalculationConfigurationWriter CreateWriter(string filePath) - { - return new StabilityStoneCoverWaveConditionsCalculationConfigurationWriter(filePath); - } - protected override StabilityStoneCoverWaveConditionsCalculationConfiguration ToConfiguration( ICalculation calculation) {