Changeset 3286


Ignore:
Timestamp:
04/08/10 02:21:50 (11 years ago)
Author:
swagner
Message:

Continued work on algorithm batch processing (#947).

Location:
trunk/sources
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs

    r3017 r3286  
    3232  public class ObservableArray<T> : IObservableArray<T> {
    3333    [Storable]
    34     private T[] array;
     34    protected T[] array;
    3535
    3636    #region Properties
  • trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs

    r3017 r3286  
    3131  public class ObservableCollection<T> : IObservableCollection<T> {
    3232    [Storable]
    33     private List<T> list;
     33    protected List<T> list;
    3434
    3535    #region Properties
  • trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs

    r3017 r3286  
    3232  public abstract class ObservableKeyedCollection<TKey, TItem> : IObservableKeyedCollection<TKey, TItem> {
    3333    [Storable]
    34     private Dictionary<TKey, TItem> dict;
     34    protected Dictionary<TKey, TItem> dict;
    3535
    3636    #region Properties
  • trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs

    r3017 r3286  
    3131  public class ObservableList<T> : IObservableList<T> {
    3232    [Storable]
    33     private List<T> list;
     33    protected List<T> list;
    3434
    3535    #region Properties
  • trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs

    r3017 r3286  
    3232  public class ObservableSet<T> : IObservableSet<T> {
    3333    [Storable]
    34     private HashSet<T> set;
     34    protected HashSet<T> set;
    3535
    3636    #region Properties
  • trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs

    r3017 r3286  
    5555
    5656    public virtual IDeepCloneable Clone(Cloner cloner) {
    57       ItemArray<T> clone = (ItemArray<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
     57      ItemArray<T> clone = (ItemArray<T>)Activator.CreateInstance(this.GetType());
    5858      cloner.RegisterClonedObject(this, clone);
     59      clone.array = this.Select(x => (T)cloner.Clone(x)).ToArray();
    5960      return clone;
    6061    }
  • trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs

    r3017 r3286  
    5151
    5252    public virtual IDeepCloneable Clone(Cloner cloner) {
    53       ItemCollection<T> clone = (ItemCollection<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
     53      ItemCollection<T> clone = (ItemCollection<T>)Activator.CreateInstance(this.GetType());
    5454      cloner.RegisterClonedObject(this, clone);
     55      clone.list = new List<T>(this.Select(x => (T)cloner.Clone(x)));
    5556      return clone;
    5657    }
  • trunk/sources/HeuristicLab.Core/3.3/ItemList.cs

    r3017 r3286  
    5555
    5656    public virtual IDeepCloneable Clone(Cloner cloner) {
    57       ItemList<T> clone = (ItemList<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
     57      ItemList<T> clone = (ItemList<T>)Activator.CreateInstance(this.GetType());
    5858      cloner.RegisterClonedObject(this, clone);
     59      clone.list = new List<T>(this.Select(x => (T)cloner.Clone(x)));
    5960      return clone;
    6061    }
  • trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs

    r3017 r3286  
    5454
    5555    public virtual IDeepCloneable Clone(Cloner cloner) {
    56       ItemSet<T> clone = (ItemSet<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
     56      ItemSet<T> clone = (ItemSet<T>)Activator.CreateInstance(this.GetType());
    5757      cloner.RegisterClonedObject(this, clone);
     58      clone.set = new HashSet<T>(this.Select(x => (T)cloner.Clone(x)));
    5859      return clone;
    5960    }
  • trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs

    r3017 r3286  
    5858    }
    5959    public virtual IDeepCloneable Clone(Cloner cloner) {
    60       NamedItemCollection<T> clone = (NamedItemCollection<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
     60      NamedItemCollection<T> clone = (NamedItemCollection<T>)Activator.CreateInstance(this.GetType());
    6161      cloner.RegisterClonedObject(this, clone);
     62      foreach (string key in dict.Keys)
     63        clone.dict.Add(key, (T)cloner.Clone(dict[key]));
    6264      return clone;
    6365    }
  • trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs

    r3283 r3286  
    126126      runs = new RunCollection();
    127127    }
    128     internal Algorithm(Algorithm algorithm, Cloner cloner)
    129       : base(algorithm.Name, algorithm.Description, (ParameterCollection)cloner.Clone(algorithm.Parameters)) {
    130       executionState = algorithm.executionState;
    131       executionTime = algorithm.executionTime;
    132       problem = (IProblem)cloner.Clone(algorithm.problem);
    133       runsCounter = algorithm.runsCounter;
    134       runs = (RunCollection)cloner.Clone(algorithm.runs);
    135       Initialize();
    136     }
    137128    [StorableConstructor]
    138129    protected Algorithm(bool deserializing) : base(deserializing) { }
     
    154145      return clone;
    155146    }
     147    protected virtual void Clone(IDeepCloneable clone, Cloner cloner) {
     148      Algorithm algorithm = clone as Algorithm;
     149      if (algorithm != null) {
     150        algorithm.name = name;
     151        algorithm.description = description;
     152        foreach (IParameter param in Parameters)
     153          algorithm.Parameters.Add((IParameter)cloner.Clone(param));
     154        algorithm.executionState = executionState;
     155        algorithm.executionTime = executionTime;
     156        algorithm.problem = (IProblem)cloner.Clone(problem);
     157        algorithm.runsCounter = runsCounter;
     158        algorithm.runs = (RunCollection)cloner.Clone(runs);
     159        algorithm.Initialize();
     160      }
     161    }
    156162
    157163    public virtual void Prepare() {
  • trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs

    r3283 r3286  
    112112      Initialize();
    113113    }
    114     internal EngineAlgorithm(EngineAlgorithm algorithm, Cloner cloner)
    115       : base(algorithm, cloner) {
    116       globalScope = (IScope)cloner.Clone(algorithm.globalScope);
    117       operatorGraph = (OperatorGraph)cloner.Clone(algorithm.operatorGraph);
    118       engine = (IEngine)cloner.Clone(algorithm.engine);
    119       Initialize();
    120     }
    121114    [StorableConstructor]
    122115    protected EngineAlgorithm(bool deserializing) : base(deserializing) { }
     
    142135      return clone;
    143136    }
     137    protected override void Clone(IDeepCloneable clone, Cloner cloner) {
     138      base.Clone(clone, cloner);
     139      EngineAlgorithm algorithm = clone as EngineAlgorithm;
     140      if (algorithm != null) {
     141        algorithm.globalScope = (IScope)cloner.Clone(globalScope);
     142        algorithm.engine = (IEngine)cloner.Clone(engine);
     143        algorithm.operatorGraph = (OperatorGraph)cloner.Clone(operatorGraph);
     144        algorithm.Initialize();
     145      }
     146    }
    144147
    145148    public UserDefinedAlgorithm CreateUserDefinedAlgorithm() {
    146       return new UserDefinedAlgorithm(this, new Cloner());
     149      UserDefinedAlgorithm algorithm = new UserDefinedAlgorithm();
     150      Cloner cloner = new Cloner();
     151      cloner.RegisterClonedObject(this, algorithm);
     152      Clone(algorithm, cloner);
     153      return algorithm;
    147154    }
    148155
  • trunk/sources/HeuristicLab.Optimization/3.3/UserDefinedAlgorithm.cs

    r3280 r3286  
    5252    public UserDefinedAlgorithm(string name) : base(name) { }
    5353    public UserDefinedAlgorithm(string name, string description) : base(name, description) { }
    54     internal UserDefinedAlgorithm(EngineAlgorithm algorithm, Cloner cloner) : base(algorithm, cloner) { }
    5554    [StorableConstructor]
    5655    private UserDefinedAlgorithm(bool deserializing) : base(deserializing) { }
Note: See TracChangeset for help on using the changeset viewer.