Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit e6facfb8 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

removing Memento/IMemento functionality

parent 50c7e514
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
/// <summary>
/// Component for a combustion engine.
/// </summary>
public class CombustionEngine : VectoSimulationComponent, ICombustionEngine, ITnOutPort, IMemento
public class CombustionEngine : VectoSimulationComponent, ICombustionEngine, ITnOutPort
{
public enum EngineOperationMode
{
......@@ -404,24 +404,5 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
}
#endregion
#region IMemento
public string Serialize()
{
var mem = new { Data = _data, PreviousState = _previousState };
return Memento.Serialize(mem);
}
public void Deserialize(string data)
{
var mem = new { Data = _data, PreviousState = _previousState };
mem = Memento.Deserialize(data, mem);
_data = mem.Data;
_previousState = mem.PreviousState;
}
#endregion
}
}
\ No newline at end of file
namespace TUGraz.VectoCore.Utils
{
public interface IMemento
{
string Serialize();
void Deserialize(string data);
}
}
\ No newline at end of file
using System.Globalization;
using Newtonsoft.Json;
namespace TUGraz.VectoCore.Utils
{
public static class Memento
{
public static string Serialize<T>(T memento)
{
var mementoObject = (memento as IMemento);
if (mementoObject != null) {
return mementoObject.Serialize();
}
return JsonConvert.SerializeObject(memento, Formatting.Indented,
new JsonSerializerSettings { Culture = CultureInfo.InvariantCulture });
}
public static T Deserialize<T>(string data, T mem)
{
return JsonConvert.DeserializeAnonymousType(data, mem,
new JsonSerializerSettings { Culture = CultureInfo.InvariantCulture });
}
public static T Deserialize<T>(string data) where T : IMemento, new()
{
var x = new T();
x.Deserialize(data);
return x;
}
public static void Deserialize<T>(T instance, string data) where T : IMemento
{
instance.Deserialize(data);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment