From ca67022db1dbdb164fefbfd2b6d7045366cc08d9 Mon Sep 17 00:00:00 2001
From: Harald Martini <harald.martini@student.tugraz.at>
Date: Mon, 30 May 2022 09:53:59 +0200
Subject: [PATCH] added Mockup SimulatorFactory

---
 .../Ninject/SimulatorFactoryModule.cs         | 26 +++++++++++
 .../VectoMockup/Ninject/VIFMockupModule.cs    | 21 +++++++++
 .../MockupDeclarationSimulatorFactory.cs      | 44 +++++++++++++++++++
 3 files changed, 91 insertions(+)
 create mode 100644 VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs
 create mode 100644 VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
 create mode 100644 VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupDeclarationSimulatorFactory.cs

diff --git a/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs
new file mode 100644
index 0000000000..da2023bc9f
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+using TUGraz.VectoMockup.Simulation.SimulatorFactory;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    public class SimulatorFactoryModule : AbstractNinjectModule
+    {
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			Kernel.Rebind<ISimulatorFactory>().To<MockupDeclarationSimulatorFactory>().Named(ExecutionMode.Declaration.ToString());
+			//Bind<ISimulatorFactory>().To<SimulatorFactoryEngineering>().Named(ExecutionMode.Engineering.ToString());
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
new file mode 100644
index 0000000000..e448064bed
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCore;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    internal class VIFMockupModulen : AbstractNinjectModule
+    {
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupDeclarationSimulatorFactory.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupDeclarationSimulatorFactory.cs
new file mode 100644
index 0000000000..da21bd6941
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupDeclarationSimulatorFactory.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.Simulation.Impl.Mockup;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+
+namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
+{
+    internal class MockupDeclarationSimulatorFactory : SimulatorFactoryDeclaration
+    {
+		public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport, IVTPReport vtpReport, bool validate, IXMLInputDataReader xmlInputDataReader, ISimulatorFactoryFactory simulatorFactoryFactory, IXMLDeclarationReportFactory xmlDeclarationReportFactory, IVectoRunDataFactoryFactory runDataFactoryFactory) : base(dataProvider, writer, declarationReport, vtpReport, validate, xmlInputDataReader, simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory) { }
+		public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer, bool validate, IXMLInputDataReader xmlInputDataReader, ISimulatorFactoryFactory simulatorFactoryFactory, IXMLDeclarationReportFactory xmlDeclarationReportFactory, IVectoRunDataFactoryFactory runDataFactoryFactory) : base(dataProvider, writer, validate, xmlInputDataReader, simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory) { }
+
+		#region Overrides of SimulatorFactory
+
+		protected override IVectoRun GetExemptedRun(VectoRunData data)
+		{
+			throw new NotImplementedException("Exempted Mockup not implemented");
+			return base.GetExemptedRun(data);
+		}
+
+		protected override IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz)
+		{
+			var addReportResult = PrepareReport(data);
+			return new MockupRun(new VehicleContainer(ExecutionMode.Declaration,
+					new ModalDataContainer(data, ReportWriter, addReportResult))
+				{ RunData = data });
+			
+		}
+
+		#endregion
+	}
+}
-- 
GitLab