Index: Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/IllustrationPointNodeConverter.cs
===================================================================
diff -u -rc77ccbb8b26516270f36ef53110be573839f3470 -rcf5fa63f05c1018cdb14d5c664fa21f26026150c
--- Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/IllustrationPointNodeConverter.cs (.../IllustrationPointNodeConverter.cs) (revision c77ccbb8b26516270f36ef53110be573839f3470)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/IllustrationPointNodeConverter.cs (.../IllustrationPointNodeConverter.cs) (revision cf5fa63f05c1018cdb14d5c664fa21f26026150c)
@@ -23,7 +23,7 @@
using System.Linq;
using Ringtoets.Common.Data.Exceptions;
using Ringtoets.Common.Data.IllustrationPoints;
-using Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints;
+using HydraRingIIllustrationPoint = Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints.IIllustrationPoint;
using HydraRingFaultTreeIllustrationPoint = Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints.FaultTreeIllustrationPoint;
using HydraRingSubMechanismIllustrationPoint = Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints.SubMechanismIllustrationPoint;
using HydraRingIllustrationPointTreeNode = Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints.IllustrationPointTreeNode;
@@ -56,13 +56,17 @@
throw new ArgumentNullException(nameof(hydraRingIllustrationPointTreeNode));
}
- IllustrationPointBase data = ConvertIllustrationPointTreeNodeData(hydraRingIllustrationPointTreeNode.Data);
+ IllustrationPointBase data;
- if (data == null)
+ try
{
+ data = ConvertIllustrationPointTreeNodeData(hydraRingIllustrationPointTreeNode.Data);
+ }
+ catch (NotSupportedException e)
+ {
string errorMessage = "An illustration point containing a Hydra ring data type of " +
$"{hydraRingIllustrationPointTreeNode.Data.GetType()} is not supported.";
- throw new IllustrationPointConversionException(errorMessage);
+ throw new IllustrationPointConversionException(errorMessage, e);
}
var illustrationPointNode = new IllustrationPointNode(data);
@@ -71,15 +75,33 @@
return illustrationPointNode;
}
- private static IllustrationPointBase ConvertIllustrationPointTreeNodeData(IIllustrationPoint data)
+ ///
+ /// Creates a new instance of a based on the
+ /// .
+ ///
+ /// The to base the
+ /// to create on.
+ /// A , null when no appropriate
+ /// conversion was found.
+ /// Thrown when
+ /// could not be converted.
+ /// Thrown when no suitable conversion for
+ /// was found.
+ private static IllustrationPointBase ConvertIllustrationPointTreeNodeData(HydraRingIIllustrationPoint data)
{
var faultTreeIllustrationPoint = data as HydraRingFaultTreeIllustrationPoint;
+ if (faultTreeIllustrationPoint != null)
+ {
+ return FaultTreeIllustrationPointConverter.Convert(faultTreeIllustrationPoint);
+ }
+
var subMechanismIllustrationPoint = data as HydraRingSubMechanismIllustrationPoint;
- return faultTreeIllustrationPoint != null
- ? (IllustrationPointBase) FaultTreeIllustrationPointConverter.Convert(faultTreeIllustrationPoint)
- : (subMechanismIllustrationPoint != null
- ? SubMechanismIllustrationPointConverter.Convert(subMechanismIllustrationPoint)
- : null);
+ if (subMechanismIllustrationPoint != null)
+ {
+ return SubMechanismIllustrationPointConverter.Convert(subMechanismIllustrationPoint);
+ }
+
+ throw new NotSupportedException($"Cannot convert {data.GetType()}.");
}
}
}
\ No newline at end of file