Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (14 years ago)
Author:
swagner
Message:

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Core/3.3/Collections/NamedItemCollection.cs

    r4068 r4722  
    2929  [StorableClass]
    3030  public class NamedItemCollection<T> : KeyedItemCollection<string, T> where T : class, INamedItem {
     31    [StorableConstructor]
     32    protected NamedItemCollection(bool deserializing) : base(deserializing) { }
     33    protected NamedItemCollection(NamedItemCollection<T> original, Cloner cloner)
     34      : base(original, cloner) {
     35      RegisterItemEvents(this);
     36    }
    3137    public NamedItemCollection() : base() { }
    3238    public NamedItemCollection(int capacity) : base(capacity) { }
    3339    public NamedItemCollection(IEnumerable<T> collection)
    3440      : base(collection) {
    35       Initialize();
     41      RegisterItemEvents(this);
    3642    }
    37     [StorableConstructor]
    38     protected NamedItemCollection(bool deserializing) : base(deserializing) { }
    3943
    4044    [StorableHook(HookType.AfterDeserialization)]
    41     protected void Initialize() {
     45    private void AfterDeserialization() {
    4246      RegisterItemEvents(this);
    4347    }
    4448
    4549    public override IDeepCloneable Clone(Cloner cloner) {
    46       NamedItemCollection<T> clone = (NamedItemCollection<T>)base.Clone(cloner);
    47       clone.Initialize();
    48       return clone;
     50      return new NamedItemCollection<T>(this, cloner);
    4951    }
    5052
     
    7375    }
    7476
    75     private void RegisterItemEvents(IEnumerable<T> items) {
     77    protected void RegisterItemEvents(IEnumerable<T> items) {
    7678      foreach (T item in items) {
    7779        if (item != null) {
Note: See TracChangeset for help on using the changeset viewer.