Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/09/10 15:18:53 (13 years ago)
Author:
cneumuel
Message:

#1260

  • applied new cloning mechanism
  • changed role names
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginFile.cs

    r4424 r4755  
    3535    [Storable]
    3636    [DataMember]
    37     public String Name { get; set; } 
     37    public String Name { get; set; }
    3838
     39    public HivePluginFile() { }
    3940    public HivePluginFile(byte[] binaryFile, String name) {
    4041      BinaryFile = binaryFile;
    4142      Name = name;
    4243    }
    43 
     44    [StorableConstructor]
     45    protected HivePluginFile(bool deserializing) { }
     46    protected HivePluginFile(HivePluginFile original, Cloner cloner) {
     47      cloner.RegisterClonedObject(original, this);
     48      this.Name = original.Name;
     49      if (original.BinaryFile != null) {
     50        this.BinaryFile = new byte[original.BinaryFile.Length];
     51        Array.Copy(original.BinaryFile, this.BinaryFile, original.BinaryFile.Length);
     52      }
     53    }
    4454    public virtual IDeepCloneable Clone(Cloner cloner) {
    45       HivePluginFile clone = (HivePluginFile)Activator.CreateInstance(this.GetType(), true);
    46       cloner.RegisterClonedObject(this, clone);
    47       clone.Name = this.Name;
    48       if (this.BinaryFile != null) {
    49         clone.BinaryFile = new byte[this.BinaryFile.Length];
    50         Array.Copy(this.BinaryFile, clone.BinaryFile, this.BinaryFile.Length);
    51       }
    52       return clone;
     55      return new HivePluginFile(this, cloner);
    5356    }
    54 
    5557    public object Clone() {
    5658      return Clone(new Cloner());
Note: See TracChangeset for help on using the changeset viewer.