Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/29/10 17:38:42 (13 years ago)
Author:
swagner
Message:

Finished cloning refactoring of HeuristicLab.Common, HeuristicLab.Collections and HeuristicLab.Core (#922)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactoring/HeuristicLab.Core/3.3/Collections/CheckedItemCollection.cs

    r4068 r4668  
    4646
    4747    /// <summary>
     48    /// Instantiates an empty CheckedItemCollection for deserialization.
     49    /// </summary>
     50    /// <param name="deserializing"></param>
     51    [StorableConstructor]
     52    protected CheckedItemCollection(bool deserializing) : base(deserializing) { }
     53    protected CheckedItemCollection(CheckedItemCollection<T> original, Cloner cloner)
     54      : base(original, cloner) {
     55      list = new List<T>(original.Select(x => cloner.Clone<T>(x)));
     56      checkedState = new Dictionary<T, bool>();
     57      foreach (var pair in original.checkedState)
     58        checkedState.Add(cloner.Clone<T>(pair.Key), pair.Value);
     59    }
     60    /// <summary>
    4861    /// Instantiates a new CheckedItemCollection.
    4962    /// </summary>
     
    7184          checkedState.Add(item, true);
    7285    }
    73     /// <summary>
    74     /// Instantiates an empty CheckedItemCollection for deserialization.
    75     /// </summary>
    76     /// <param name="deserializing"></param>
    77     [StorableConstructor]
    78     protected CheckedItemCollection(bool deserializing) : base(deserializing) { }
    7986
    8087    /// <summary>
     
    179186    /// <returns>A clone of the CheckedItemCollection</returns>
    180187    public override IDeepCloneable Clone(Cloner cloner) {
    181       CheckedItemCollection<T> clone = (CheckedItemCollection<T>)Activator.CreateInstance(this.GetType());
    182       cloner.RegisterClonedObject(this, clone);
    183       clone.list = new List<T>(this.Select(x => (T)cloner.Clone(x)));
    184       clone.checkedState = new Dictionary<T, bool>();
    185       foreach (var pair in checkedState)
    186         clone.checkedState.Add((T)cloner.Clone(pair.Key), pair.Value);
    187       return clone;
     188      return new CheckedItemCollection<T>(this, cloner);
    188189    }
    189190  }
Note: See TracChangeset for help on using the changeset viewer.