Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/04/19 16:03:51 (5 years ago)
Author:
abeham
Message:

#2521: refactored multi-objective problems' maximization

  • Add ForceValue method to IValueParameter to perform changes even when it is read-only
  • Add MaximizationChanged event handler
Location:
branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/FixedValueParameter.cs

    r17226 r17317  
    3232  [StorableType("7787B99D-5F32-4639-B47A-76CB4D204392")]
    3333  public class FixedValueParameter<T> : ValueParameter<T>, IFixedValueParameter<T> where T : class, IItem, new() {
     34    IItem IFixedValueParameter.Value { get { return Value; } }
    3435
    35     public override T Value {
    36       get { return base.Value; }
    37       set { throw new NotSupportedException("FixedValueParameters do not support setting their value."); }
     36    public override void ForceValue(T value) {
     37      throw new NotSupportedException("FixedValueParameters do not support setting their value.");
    3838    }
    39 
    40     IItem IFixedValueParameter.Value { get { return Value; } }
    4139
    4240    [StorableConstructor]
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs

    r17226 r17317  
    5353      set {
    5454        if (ReadOnly) throw new InvalidOperationException("Cannot set the value of a readonly parameter.");
    55         if (value != this.value) {
    56           if ((value != null) && !validValues.Contains(value)) throw new ArgumentException("Invalid value.");
    57           DeregisterValueEvents();
    58           this.value = value;
    59           RegisterValueEvents();
    60           OnValueChanged();
    61         }
     55        DoSetValue(value);
     56      }
     57    }
     58    public virtual void ForceValue(T value) {
     59      DoSetValue(value);
     60    }
     61    private void DoSetValue(T value) {
     62      if (value != this.value) {
     63        if ((value != null) && !validValues.Contains(value)) throw new ArgumentException("Invalid value.");
     64        DeregisterValueEvents();
     65        this.value = value;
     66        RegisterValueEvents();
     67        OnValueChanged();
    6268      }
    6369    }
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs

    r17226 r17317  
    4646      set {
    4747        if (ReadOnly) throw new InvalidOperationException("Cannot set the value of a readonly parameter.");
    48         if (value != this.value) {
    49           DeregisterValueEvents();
    50           this.value = value;
    51           RegisterValueEvents();
    52           OnValueChanged();
    53         }
     48        DoSetValue(value);
     49      }
     50    }
     51    public virtual void ForceValue(T value) {
     52      DoSetValue(value);
     53    }
     54    private void DoSetValue(T value) {
     55      if (value != this.value) {
     56        DeregisterValueEvents();
     57        this.value = value;
     58        RegisterValueEvents();
     59        OnValueChanged();
    5460      }
    5561    }
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs

    r17226 r17317  
    4646      set {
    4747        if (ReadOnly) throw new InvalidOperationException("Cannot set the value of a readonly parameter.");
    48         if (value != this.value) {
    49           DeregisterValueEvents();
    50           this.value = value;
    51           RegisterValueEvents();
    52           OnValueChanged();
    53         }
    54       }
    55     }
     48        DoSetValue(value);
     49      }
     50    }
     51    public virtual void ForceValue(T value) {
     52      DoSetValue(value);
     53    }
     54    private void DoSetValue(T value) {
     55      if (value != this.value) {
     56        DeregisterValueEvents();
     57        this.value = value;
     58        RegisterValueEvents();
     59        OnValueChanged();
     60      }
     61    }
     62
    5663    IItem IValueParameter.Value {
    5764      get { return Value; }
Note: See TracChangeset for help on using the changeset viewer.