Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/02/08 14:13:06 (15 years ago)
Author:
gkronber
Message:

Refactored cloning in HL.Core, HL.Data and HL.Constraints

#285 (Cloning could be improved by creating objects at the bottom of the cloning chain with 'new' instead of the top with Activator.CreateInstance())

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactorBranch/HeuristicLab.Data/IntArrayData.cs

    r737 r885  
    5656      Data = data;
    5757    }
     58        /// <summary>
     59    /// Copy constructor to create clones (deep).
     60    /// </summary>
     61    /// <param name="original">The original instance to be cloned.</param>
     62    public IntArrayData(IntArrayData original) : this(original, new Dictionary<Guid, object>()) { }
     63    /// <summary>
     64    /// Copy constructor to create clones (deep) reusing already cloned object references.
     65    /// </summary>
     66    /// <param name="original">The instance to be cloned.</param>
     67    /// <param name="clonedObjects">Already cloned objects (for referential integrity).</param>
     68    protected IntArrayData(IntArrayData original, IDictionary<Guid, object> clonedObjects)
     69      : base(original, clonedObjects) { }
    5870
    5971    /// <summary>
     
    6375    public override IView CreateView() {
    6476      return new IntArrayDataView(this);
     77    }
     78
     79    /// <summary>
     80    /// Clones an instance using the copy constructor
     81    /// reusing already cloned object references.
     82    /// </summary>
     83    /// <param name="clonedObjects">Already cloned objects (for referential integrity).</param>
     84    /// <returns>A cloned (deep) instance</returns>
     85    public override object Clone(IDictionary<Guid, object> clonedObjects) {
     86      return new IntArrayData(this, clonedObjects);
    6587    }
    6688
Note: See TracChangeset for help on using the changeset viewer.