using HeuristicLab.Common; using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; namespace HeuristicLab.SimulationCore { [StorableClass] public abstract class Model : IModel { [Storable] public double CurrentTime { get; set; } [StorableConstructor] protected Model(bool deserializing) { } protected Model(Model original, Cloner cloner) { cloner.RegisterClonedObject(original, this); CurrentTime = original.CurrentTime; } protected Model() { } protected Model(double time) { CurrentTime = time; } public object Clone() { return Clone(new Cloner()); } public abstract IDeepCloneable Clone(Cloner cloner); } }