Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs
===================================================================
diff -u -rbe6a13ac1251d94b796612190233ac7a380b328e -r66a40e718fdf95596f8897d81af4a1a0144cfae4
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision be6a13ac1251d94b796612190233ac7a380b328e)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 66a40e718fdf95596f8897d81af4a1a0144cfae4)
@@ -35,23 +35,28 @@
///
public class IllustrationPointsParser : IHydraRingFileParser
{
- ///
- /// The result of parsing the illustration points in the Hydra-Ring database.
- ///
- public readonly GeneralResult Output = new GeneralResult();
-
private readonly Dictionary> faultTreeStochasts = new Dictionary>();
private readonly Dictionary faultTreeBetaValues = new Dictionary();
private readonly Dictionary> subMechanismStochasts = new Dictionary>();
private readonly Dictionary subMechanismBetaValues = new Dictionary();
private readonly Dictionary> subMechanismResults = new Dictionary>();
+ private double beta = double.NaN;
+ private WindDirection governingWindDirection;
+ private IEnumerable stochasts;
+ private Dictionary rootIllustrationPoints;
+
private IDictionary windDirections;
private IDictionary closingSituations;
private IDictionary subMechanisms;
private IDictionary faultTrees;
+ ///
+ /// The result of parsing the illustration points in the Hydra-Ring database.
+ ///
+ public GeneralResult Output { get; private set; }
+
public void Parse(string workingDirectory, int sectionId)
{
string query = string.Concat(
@@ -106,10 +111,15 @@
ParseSubMechanismResults(reader);
ProceedOrThrow(reader);
ParseFaultTree(reader);
- if (Output.IllustrationPoints == null)
+ if (rootIllustrationPoints == null)
{
SetSubMechanismAsRootIllustrationPoint();
}
+
+ if (governingWindDirection != null && stochasts != null && rootIllustrationPoints != null)
+ {
+ Output = new GeneralResult(beta, governingWindDirection, stochasts, rootIllustrationPoints);
+ }
}
///
@@ -127,7 +137,7 @@
private void SetSubMechanismAsRootIllustrationPoint()
{
- var rootIllustrationPoints = new Dictionary();
+ rootIllustrationPoints = new Dictionary();
foreach (Tuple windDirectionClosingSituation in GetAllWindDirectionClosingSituationCombinations())
{
string submechanismIllustrationPointName = subMechanisms.First().Value;
@@ -147,7 +157,6 @@
rootIllustrationPoints[CreateFaultTreeKey(windDirectionClosingSituation)] =
new IllustrationPointTreeNode(illustrationPoint);
}
- Output.IllustrationPoints = rootIllustrationPoints;
}
private void ParseFaultTreeAlphaValues(HydraRingDatabaseReader reader)
@@ -265,16 +274,14 @@
{
List> results = CreateResultTuples(readFaultTrees);
- var rootIllustrationPoints = new Dictionary();
+ rootIllustrationPoints = new Dictionary();
foreach (Tuple windDirectionClosingSituation in windDirectionClosingSituations)
{
Tuple root = results.Single(r => !r.Item1.HasValue);
rootIllustrationPoints[CreateFaultTreeKey(windDirectionClosingSituation)] =
BuildFaultTree(windDirectionClosingSituation, root.Item2, root.Item4, results);
}
-
- Output.IllustrationPoints = rootIllustrationPoints;
}
}
@@ -375,8 +382,8 @@
{
throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found);
}
- Output.Beta = ConvertToDouble(betaValues[0][IllustrationPointsDatabaseConstants.BetaValue],
- IllustrationPointsDatabaseConstants.BetaValue);
+ beta = ConvertToDouble(betaValues[0][IllustrationPointsDatabaseConstants.BetaValue],
+ IllustrationPointsDatabaseConstants.BetaValue);
}
///
@@ -399,7 +406,7 @@
private void ParseGeneralAlphaValues(HydraRingDatabaseReader reader)
{
- Output.Stochasts = GetIterator(reader).Select(a =>
+ stochasts = GetIterator(reader).Select(a =>
{
string name = Convert.ToString(a[IllustrationPointsDatabaseConstants.StochastName]);
double duration = ConvertToDouble(a[IllustrationPointsDatabaseConstants.Duration], IllustrationPointsDatabaseConstants.Duration);
@@ -432,7 +439,7 @@
if (isGoverning)
{
- Output.GoverningWind = windDirection;
+ governingWindDirection = windDirection;
}
}
}