Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2895_PushGP_GenealogyAnalysis/HeuristicLab.Problems.ProgramSynthesis.GenealogyAnalysis/Fragment.cs @ 16189

Last change on this file since 16189 was 15771, checked in by bburlacu, 7 years ago

#2895: Add solution skeleton for PushGP with genealogy analysis.

File size: 1.7 KB
RevLine 
[10347]1using HeuristicLab.Common;
2using HeuristicLab.Core;
3using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
4
[15771]5namespace HeuristicLab.Problems.ProgramSynthesis {
[10347]6  [StorableClass]
[10830]7  [Item("Fragment", "A fragment is an object that represents a piece of inherited genetic information.")]
[10347]8  public class Fragment : Item, IFragment {
9    [Storable]
[10755]10    public int Index1 { get; set; }
[10347]11
12    [Storable]
[10755]13    public int Index2 { get; set; }
[10347]14
15    [Storable]
16    private object root;
17    public object Root {
18      get { return root; }
19      set { root = value; }
20    }
[10830]21    [StorableConstructor]
22    protected Fragment(bool deserializable) : base(deserializable) { }
23
[10347]24    protected Fragment(Fragment original, Cloner cloner)
25      : base(original, cloner) {
26      Root = original.Root;
[10755]27      Index1 = original.Index1;
28      Index2 = original.Index2;
[10347]29    }
[11928]30
[10347]31    public override IDeepCloneable Clone(Cloner cloner) {
32      return new Fragment(this, cloner);
33    }
[11928]34
[10347]35    public Fragment() { }
36  }
37
[10830]38  [StorableClass]
39  [Item("Fragment", "A fragment is an object that represents a piece of inherited genetic information.")]
[10347]40  public class Fragment<T> : Fragment, IFragment<T> where T : class {
41    public new T Root {
42      get { return (T)base.Root; }
43      set { base.Root = value; }
44    }
[10830]45
[11928]46    public override IDeepCloneable Clone(Cloner cloner) {
47      return new Fragment<T>(this, cloner);
48    }
49
50    protected Fragment(Fragment<T> original, Cloner cloner)
[10830]51      : base(original, cloner) {
52    }
53
54    [StorableConstructor]
[11928]55    protected Fragment(bool deserializable) : base(deserializable) { }
[10830]56
57    public Fragment() { }
[10347]58  }
59}
Note: See TracBrowser for help on using the repository browser.