Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/10 19:15:09 (14 years ago)
Author:
swagner
Message:

Moved interfaces and classes for deep cloning from HeuristicLab.Core to HeuristicLab.Common (#975).

Location:
trunk/sources/HeuristicLab.Core/3.3
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core/3.3/Engine.cs

    r3289 r3376  
    2323using System.Collections.Generic;
    2424using System.Threading;
     25using HeuristicLab.Common;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2627
  • trunk/sources/HeuristicLab.Core/3.3/ExecutionContext.cs

    r3317 r3376  
    2222using System;
    2323using HeuristicLab.Collections;
     24using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.Core {
    2728  [StorableClass]
    28   public sealed class ExecutionContext : DeepCloneable, IExecutionContext, IAtomicOperation {
     29  public sealed class ExecutionContext : IDeepCloneable, IExecutionContext, IAtomicOperation {
    2930    [Storable]
    3031    private IParameterizedItem parameterizedItem;
     
    6263    }
    6364
    64     public override IDeepCloneable Clone(Cloner cloner) {
     65    public object Clone() {
     66      return Clone(new Cloner());
     67    }
     68    public IDeepCloneable Clone(Cloner cloner) {
    6569      ExecutionContext clone = new ExecutionContext();
    6670      cloner.RegisterClonedObject(this, clone);
  • trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj

    r3289 r3376  
    100100  <ItemGroup>
    101101    <Compile Include="Attributes\ItemAttribute.cs" />
    102     <Compile Include="Cloner.cs" />
    103102    <Compile Include="Attributes\CreatableAttribute.cs" />
    104103    <None Include="HeuristicLabCorePlugin.cs.frame" />
     
    120119    <Compile Include="Interfaces\ILookupParameter.cs" />
    121120    <Compile Include="ItemArray.cs" />
    122     <Compile Include="DeepCloneable.cs" />
    123121    <Compile Include="Engine.cs" />
    124122    <Compile Include="Interfaces\IScope.cs" />
     
    141139    <Compile Include="VariableCollection.cs" />
    142140    <Compile Include="ScopeList.cs" />
    143     <Compile Include="Interfaces\IDeepCloneable.cs" />
    144141    <Compile Include="NamedItemCollection.cs" />
    145142    <Compile Include="Interfaces\INamedItem.cs" />
  • trunk/sources/HeuristicLab.Core/3.3/Interfaces/IExecutionContext.cs

    r2834 r3376  
    2121
    2222using HeuristicLab.Collections;
     23using HeuristicLab.Common;
    2324
    2425namespace HeuristicLab.Core {
  • trunk/sources/HeuristicLab.Core/3.3/Interfaces/IOperation.cs

    r2834 r3376  
    2020#endregion
    2121
     22using HeuristicLab.Common;
     23
    2224namespace HeuristicLab.Core {
    2325  /// <summary>
  • trunk/sources/HeuristicLab.Core/3.3/Item.cs

    r3370 r3376  
    2222using System;
    2323using System.Drawing;
     24using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
     
    3031  [StorableClass]
    3132  [Item("Item", "Base class for all HeuristicLab items.")]
    32   public abstract class Item : DeepCloneable, IItem {
     33  public abstract class Item : IDeepCloneable, IItem {
    3334    public virtual string ItemName {
    3435      get { return ItemAttribute.GetName(this.GetType()); }
     
    5859    }
    5960    [StorableConstructor]
    60     protected Item(bool deserializing) : base(deserializing) { }
     61    protected Item(bool deserializing) { }
    6162
     63
     64    /// <summary>
     65    /// Creates a deep clone of this instance.
     66    /// </summary>
     67    /// <remarks>
     68    /// This method is the entry point for creating a deep clone of a whole object graph.
     69    /// </remarks>
     70    /// <returns>A clone of this instance.</returns>
     71    public object Clone() {
     72      return Clone(new Cloner());
     73    }
    6274
    6375    /// <summary>
     
    6678    /// <param name="clonedObjects">Dictionary of all already cloned objects. (Needed to avoid cycles.)</param>
    6779    /// <returns>The cloned object as <see cref="Variable"/>.</returns>
    68     public override IDeepCloneable Clone(Cloner cloner) {
    69       Item clone = (Item)base.Clone(cloner);
     80    public virtual IDeepCloneable Clone(Cloner cloner) {
     81      Item clone = (Item)Activator.CreateInstance(this.GetType());
     82      cloner.RegisterClonedObject(this, clone);
    7083      clone.readOnlyView = readOnlyView;
    7184      return clone;
  • trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs

    r3317 r3376  
    2828using System.Drawing;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Common;
    3031using HeuristicLab.Common.Resources;
    3132using HeuristicLab.Collections;
  • trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs

    r3317 r3376  
    2525using System.Linq;
    2626using HeuristicLab.Collections;
     27using HeuristicLab.Common;
    2728using HeuristicLab.Common.Resources;
    2829using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
  • trunk/sources/HeuristicLab.Core/3.3/ItemList.cs

    r3317 r3376  
    2828using System.Drawing;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Common;
    3031using HeuristicLab.Common.Resources;
    3132using HeuristicLab.Collections;
    32 
    3333
    3434namespace HeuristicLab.Core {
  • trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs

    r3317 r3376  
    2828using System.Drawing;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Common;
    3031using HeuristicLab.Common.Resources;
    3132using HeuristicLab.Collections;
    32 
    3333
    3434namespace HeuristicLab.Core {
  • trunk/sources/HeuristicLab.Core/3.3/OperationCollection.cs

    r3317 r3376  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
    2324using System.Linq;
     25using HeuristicLab.Common;
    2426using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2527
    2628namespace HeuristicLab.Core {
    2729  [StorableClass]
    28   public sealed class OperationCollection : DeepCloneable, IList<IOperation>, IOperation {
     30  public sealed class OperationCollection : IDeepCloneable, IList<IOperation>, IOperation {
    2931    [Storable]
    3032    private IList<IOperation> operations;
     
    5052    }
    5153
    52     public override IDeepCloneable Clone(Cloner cloner) {
    53       OperationCollection clone = (OperationCollection)base.Clone(cloner);
     54    public object Clone() {
     55      return Clone(new Cloner());
     56    }
     57    public IDeepCloneable Clone(Cloner cloner) {
     58      OperationCollection clone = (OperationCollection)Activator.CreateInstance(this.GetType());
     59      cloner.RegisterClonedObject(this, clone);
    5460      clone.operations = new List<IOperation>(this.Select(x => (IOperation)cloner.Clone(x)));
    5561      clone.parallel = parallel;
  • trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs

    r3280 r3376  
    2323using System.Linq;
    2424using HeuristicLab.Collections;
     25using HeuristicLab.Common;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2627
  • trunk/sources/HeuristicLab.Core/3.3/Scope.cs

    r3317 r3376  
    2121
    2222using HeuristicLab.Collections;
     23using HeuristicLab.Common;
    2324using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2425
  • trunk/sources/HeuristicLab.Core/3.3/ScopeList.cs

    r3317 r3376  
    2222using System.Collections.Generic;
    2323using System.Linq;
     24using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
  • trunk/sources/HeuristicLab.Core/3.3/VariableCollection.cs

    r3317 r3376  
    2222using System.Collections.Generic;
    2323using System.Linq;
     24using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
Note: See TracChangeset for help on using the changeset viewer.