Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/04/20 18:16:58 (4 years ago)
Author:
abeham
Message:

#2521: refactoring in progress

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorEncoding.cs

    r17567 r17587  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.ComponentModel;
    2524using System.Linq;
    2625using HEAL.Attic;
    2726using HeuristicLab.Common;
    2827using HeuristicLab.Core;
    29 using HeuristicLab.Data;
    3028using HeuristicLab.Optimization;
    31 using HeuristicLab.Parameters;
    3229using HeuristicLab.PluginInfrastructure;
    3330
     
    3532  [Item("BinaryVectorEncoding", "Describes a binary vector encoding.")]
    3633  [StorableType("889C5E1A-3FBF-4AB3-AB2E-199A781503B5")]
    37   public sealed class BinaryVectorEncoding : Encoding<BinaryVector>, INotifyPropertyChanged {
    38     #region Encoding Parameters
    39     [Storable] public IValueParameter<IntValue> LengthParameter { get; private set; }
    40     #endregion
    41 
    42     public int Length {
    43       get { return LengthParameter.Value.Value; }
    44       set {
    45         if (Length == value) return;
    46         LengthParameter.Value = new IntValue(value, @readonly: LengthParameter.Value.ReadOnly);
    47       }
    48     }
     34  public sealed class BinaryVectorEncoding : VectorEncoding<BinaryVector> {
    4935
    5036    [StorableConstructor]
     
    5339    private void AfterDeserialization() {
    5440      DiscoverOperators();
    55       RegisterEventHandlers();
    5641    }
    5742    public override IDeepCloneable Clone(Cloner cloner) { return new BinaryVectorEncoding(this, cloner); }
    58     private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner)
    59       : base(original, cloner) {
    60       LengthParameter = cloner.Clone(original.LengthParameter);
    61       RegisterEventHandlers();
    62     }
    63 
     43    private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner) : base(original, cloner) { }
    6444    public BinaryVectorEncoding() : this("BinaryVector", 10) { }
    6545    public BinaryVectorEncoding(string name) : this(name, 10) { }
    6646    public BinaryVectorEncoding(int length) : this("BinaryVector", length) { }
    6747    public BinaryVectorEncoding(string name, int length)
    68       : base(name) {
    69       Parameters.Add(LengthParameter = new ValueParameter<IntValue>(Name + ".Length", new IntValue(length)) { ReadOnly = true });
    70      
     48      : base(name, length) {     
    7149      SolutionCreator = new RandomBinaryVectorCreator();
     50
    7251      DiscoverOperators();
    73 
    74       RegisterEventHandlers();
    75     }
    76 
    77     private void RegisterEventHandlers() {
    78       IntValueParameterChangeHandler.Create(LengthParameter, () => OnPropertyChanged(nameof(Length)));
    7952    }
    8053
     
    153126    }
    154127    #endregion
    155 
    156     public event PropertyChangedEventHandler PropertyChanged;
    157     private void OnPropertyChanged(string property) {
    158       PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
    159     }
    160128  }
    161129}
Note: See TracChangeset for help on using the changeset viewer.