From e7d36efe43d36599249220fb237ed4e9abfd8094 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 20 Jul 2016 10:08:59 +0200
Subject: [PATCH] changed naming of retarder types

---
 VectoCommon/VectoCommon/Models/RetarderType.cs |  5 +++--
 .../InputData/FileIO/JSON/JSONVehicleData.cs   | 18 ++++++++++++++----
 .../AbstractSimulationDataAdapter.cs           |  9 +++++----
 .../EngineeringDataAdapter.cs                  |  1 -
 .../Impl/EngineOnlyVectoRunDataFactory.cs      |  1 -
 .../Impl/EngineeringModeVectoRunDataFactory.cs |  1 -
 .../Models/Declaration/StandardBodies.cs       |  4 ++--
 .../VectoCore/Utils/ProviderExtensions.cs      | 15 ++++++++-------
 .../SimulationComponentData/ValidationTest.cs  |  1 -
 .../Utils/MockSimulationDataFactory.cs         |  1 -
 10 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/VectoCommon/VectoCommon/Models/RetarderType.cs b/VectoCommon/VectoCommon/Models/RetarderType.cs
index 5094c03963..cf17f57897 100644
--- a/VectoCommon/VectoCommon/Models/RetarderType.cs
+++ b/VectoCommon/VectoCommon/Models/RetarderType.cs
@@ -34,8 +34,9 @@ namespace TUGraz.VectoCommon.Models
 	public enum RetarderType
 	{
 		None,
-		Primary,
-		Secondary,
+		TransmissionInputRetarder,
+		TransmissionOutputRetarder,
+		EngineRetarder,
 		LossesIncludedInTransmission
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 8eed413623..6263b3a1ee 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -34,6 +34,7 @@ using System.Collections.Generic;
 using System.Data;
 using System.Linq;
 using Newtonsoft.Json.Linq;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
@@ -148,10 +149,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		{
 			get
 			{
-				return
-					(RetarderType)
-						Enum.Parse(typeof(RetarderType),
-							Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<string>(JsonKeys.Vehicle_Retarder_Type), true);
+				var retarderType = Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<string>(JsonKeys.Vehicle_Retarder_Type);
+				try {
+					return retarderType.ParseEnum<RetarderType>();
+				} catch (Exception) {
+					switch (retarderType.ToLower()) {
+						case "primary":
+							return RetarderType.TransmissionInputRetarder;
+						case "secondary":
+							return RetarderType.TransmissionOutputRetarder;
+						default:
+							throw new VectoException("Unknown retarder type {0}", retarderType);
+					}
+				}
 			}
 		}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
index 9110544bd5..158ab2ae72 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
@@ -89,8 +89,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 					Type = data.Type,
 				};
 				switch (retarder.Type) {
-					case RetarderType.Primary:
-					case RetarderType.Secondary:
+				//case RetarderType.EngineRetarder:
+				case RetarderType.TransmissionInputRetarder:
+				case RetarderType.TransmissionOutputRetarder:
 						retarder.LossMap = RetarderLossMap.Create(data.LossMap);
 						retarder.Ratio = data.Ratio;
 						break;
@@ -149,9 +150,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			try {
 				axleLossMap = TransmissionLossMap.Create(data.LossMap, data.Ratio, "AxleGear");
 			} catch (InvalidFileFormatException) {
-				if (useEfficiencyFallback)
+				if (useEfficiencyFallback) {
 					axleLossMap = TransmissionLossMap.Create(data.Efficiency, data.Ratio, "AxleGear");
-				else {
+				} else {
 					throw;
 				}
 			}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 7b0dbf7777..175dd7d4e2 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -36,7 +36,6 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
index a021cb8994..2d17c6f02a 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
@@ -33,7 +33,6 @@ using System.Collections.Generic;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
-using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index 6ee20e0993..5d9dc695b3 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -35,7 +35,6 @@ using System.Runtime.CompilerServices;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
-using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
diff --git a/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
index a47daf0ee7..aeecd0fbef 100644
--- a/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
+++ b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
@@ -38,7 +38,7 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	internal sealed class StandardBody
+	public sealed class StandardBody
 	{
 		public StandardBody(Kilogram curbWeight, Kilogram grossVehicleWeight, SquareMeter deltaCrossWindArea,
 			Wheels.WheelsEntry wheels)
@@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 	///     DeltaCrossWindArea,
 	///     Wheels
 	/// </summary>
-	internal sealed class StandardBodies : LookupData<string, StandardBody>
+	public sealed class StandardBodies : LookupData<string, StandardBody>
 	{
 		private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.Body_Trailers_Weights.csv";
 
diff --git a/VectoCore/VectoCore/Utils/ProviderExtensions.cs b/VectoCore/VectoCore/Utils/ProviderExtensions.cs
index 294757a699..7abcea559c 100644
--- a/VectoCore/VectoCore/Utils/ProviderExtensions.cs
+++ b/VectoCore/VectoCore/Utils/ProviderExtensions.cs
@@ -83,8 +83,9 @@ namespace TUGraz.VectoCore.Utils
 
 		public static IPowerTrainComponent AddComponent(this IPowerTrainComponent prev, IPowerTrainComponent next)
 		{
-			if (next == null)
+			if (next == null) {
 				return prev;
+			}
 
 			prev.InPort().Connect(next.OutPort());
 			return next;
@@ -95,26 +96,26 @@ namespace TUGraz.VectoCore.Utils
 			prev.InPort().Connect(next.OutPort());
 
 			var clutch = prev as IClutch;
-			if (clutch != null)
+			if (clutch != null) {
 				next.IdleController.RequestPort = clutch.IdleControlPort;
+			}
 			return next;
 		}
 
 		public static IPowerTrainComponent AddRetarderAndGearbox(this IPowerTrainComponent prev, RetarderData data,
-			IGearbox gearbox,
-			IVehicleContainer container)
+			IGearbox gearbox, IVehicleContainer container)
 		{
 			switch (data.Type) {
-				case RetarderType.Primary:
+				case RetarderType.TransmissionOutputRetarder:
 					return prev.AddComponent(new Retarder(container, data.LossMap, data.Ratio)).AddComponent(gearbox);
-				case RetarderType.Secondary:
+				case RetarderType.TransmissionInputRetarder:
 					return prev.AddComponent(gearbox).AddComponent(new Retarder(container, data.LossMap, data.Ratio));
 				case RetarderType.None:
 					return prev.AddComponent(new DummyRetarder(container)).AddComponent(gearbox);
 				case RetarderType.LossesIncludedInTransmission:
 					return prev.AddComponent(new DummyRetarder(container)).AddComponent(gearbox);
 				default:
-					throw new ArgumentOutOfRangeException();
+					throw new ArgumentOutOfRangeException(data.Type.ToString());
 			}
 		}
 	}
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
index 3229e84b96..0e305dcc18 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
@@ -38,7 +38,6 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
-using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index 8ad35333c5..422b40d4e1 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -34,7 +34,6 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
-using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
 namespace TUGraz.VectoCore.Tests.Utils
-- 
GitLab