Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (13 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.Optimization/3.3/UserDefinedProblem.cs

    r4419 r4722  
    117117    [StorableConstructor]
    118118    private UserDefinedProblem(bool deserializing) : base(deserializing) { }
     119    [StorableHook(HookType.AfterDeserialization)]
     120    private void AfterDeserialization() {
     121      AttachEventHandlers();
     122    }
    119123    public UserDefinedProblem()
    120124      : base() {
     
    129133    }
    130134
     135    private UserDefinedProblem(UserDefinedProblem original, Cloner cloner)
     136      : base(original, cloner) {
     137      AttachEventHandlers();
     138    }
    131139    public override IDeepCloneable Clone(Cloner cloner) {
    132       UserDefinedProblem clone = (UserDefinedProblem)base.Clone(cloner);
    133       clone.AttachEventHandlers();
    134       return clone;
     140      return new UserDefinedProblem(this, cloner);
    135141    }
    136142
     
    186192
    187193    #region Helpers
    188     [StorableHook(HookType.AfterDeserialization)]
    189194    private void AttachEventHandlers() {
    190195      SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);
     
    216221    [Item("EmptyUserDefinedProblemEvaluator", "A dummy evaluator that will throw an exception when executed.")]
    217222    [StorableClass]
    218     private class EmptyUserDefinedProblemEvaluator : ParameterizedNamedItem, ISingleObjectiveEvaluator {
     223    private sealed class EmptyUserDefinedProblemEvaluator : ParameterizedNamedItem, ISingleObjectiveEvaluator {
     224
     225      [StorableConstructor]
     226      private EmptyUserDefinedProblemEvaluator(bool deserializing) : base(deserializing) { }
     227      private EmptyUserDefinedProblemEvaluator(EmptyUserDefinedProblemEvaluator original, Cloner cloner)
     228        : base(original, cloner) {
     229      }
     230      public override IDeepCloneable Clone(Cloner cloner) {
     231        return new EmptyUserDefinedProblemEvaluator(this, cloner);
     232      }
     233
    219234      #region ISingleObjectiveEvaluator Members
    220235
     
    231246      #region IOperator Members
    232247
    233       public bool Breakpoint {
    234         get;
    235         set;
    236       }
     248      public bool Breakpoint { get; set; }
    237249
    238250      public IOperation Execute(IExecutionContext context) {
     
    244256      }
    245257
    246       #pragma warning disable 67
     258#pragma warning disable 67
    247259      public event EventHandler BreakpointChanged;
    248260
    249261      public event EventHandler Executed;
    250       #pragma warning restore 67
     262#pragma warning restore 67
    251263
    252264      #endregion
     
    255267        get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Method; }
    256268      }
    257     } 
     269    }
    258270  }
    259271}
Note: See TracChangeset for help on using the changeset viewer.