Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/05/10 05:23:56 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on parameters and operators
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs

    r2740 r2756  
    3232  /// </summary>
    3333  [Item("OperatorParameter", "A parameter which represents an operator.")]
     34  [EmptyStorableClass]
    3435  [Creatable("Test")]
    35   public class OperatorParameter : Parameter, IOperatorParameter {
    36     private IOperator value;
    37     [Storable]
    38     public IOperator Value {
    39       get { return this.value; }
    40       set {
    41         if (value != this.value) {
    42           if (this.value != null) this.value.Changed -= new ChangedEventHandler(Value_Changed);
    43           this.value = value;
    44           if (this.value != null) this.value.Changed += new ChangedEventHandler(Value_Changed);
    45           OnValueChanged();
    46         }
    47       }
     36  public class OperatorParameter : ValueParameter<IOperator> {
     37    public OperatorParameter()
     38      : base("Anonymous") {
    4839    }
    49 
    50     public OperatorParameter()
    51       : base("Anonymous", null, typeof(IOperator)) {
     40    public OperatorParameter(string name)
     41      : base(name) {
     42    }
     43    public OperatorParameter(string name, IOperator value)
     44      : base(name, value) {
     45      Value = value;
    5246    }
    5347    public OperatorParameter(string name, string description)
    54       : base(name, description, typeof(IOperator)) {
     48      : base(name, description) {
    5549    }
    5650    public OperatorParameter(string name, string description, IOperator value)
    57       : base(name, description, typeof(IOperator)) {
     51      : base(name, description, value) {
    5852      Value = value;
    59     }
    60 
    61     public override IDeepCloneable Clone(Cloner cloner) {
    62       OperatorParameter clone = (OperatorParameter)base.Clone(cloner);
    63       clone.Value = (IOperator)cloner.Clone(value);
    64       return clone;
    65     }
    66 
    67     public override string ToString() {
    68       return string.Format("{0}: {1} ({2})", Name, Value != null ? Value.ToString() : "null", DataType.Name);
    69     }
    70 
    71     public event EventHandler ValueChanged;
    72     private void OnValueChanged() {
    73       if (ValueChanged != null)
    74         ValueChanged(this, new EventArgs());
    75       OnChanged();
    76     }
    77     private void Value_Changed(object sender, ChangedEventArgs e) {
    78       OnChanged(e);
    7953    }
    8054  }
Note: See TracChangeset for help on using the changeset viewer.