Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/13/10 06:41:56 (14 years ago)
Author:
swagner
Message:

Implemented ReadOnlyView property for items (#969).

File:
1 edited

Legend:

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

    r3136 r3317  
    3333  [StorableClass]
    3434  public class OptionalConstrainedValueParameter<T> : Parameter, IValueParameter<T> where T : class, IItem {
     35    [Storable]
    3536    private ItemSet<T> validValues;
    36     [Storable]
    3737    public ItemSet<T> ValidValues {
    3838      get { return validValues; }
    39       private set {
    40         DeregisterValidValuesEvents();
    41         validValues = value;
    42         RegisterValidValuesEvents();
    43       }
    4439    }
    4540
     41    [Storable]
    4642    private T value;
    47     [Storable]
    4843    public virtual T Value {
    4944      get { return this.value; }
     
    7469    public OptionalConstrainedValueParameter()
    7570      : base("Anonymous", typeof(T)) {
    76       ValidValues = new ItemSet<T>();
     71      this.validValues = new ItemSet<T>();
     72      Initialize();
    7773    }
    7874    public OptionalConstrainedValueParameter(string name)
    7975      : base(name, typeof(T)) {
    80       ValidValues = new ItemSet<T>();
     76      this.validValues = new ItemSet<T>();
     77      Initialize();
    8178    }
    8279    public OptionalConstrainedValueParameter(string name, ItemSet<T> validValues)
    8380      : base(name, typeof(T)) {
    84       ValidValues = validValues;
     81      this.validValues = validValues;
     82      Initialize();
    8583    }
    8684    public OptionalConstrainedValueParameter(string name, ItemSet<T> validValues, T value)
    8785      : base(name, typeof(T)) {
    88       ValidValues = validValues;
    89       Value = value;
     86      this.validValues = validValues;
     87      this.value = value;
     88      Initialize();
    9089    }
    9190    public OptionalConstrainedValueParameter(string name, string description)
    9291      : base(name, description, typeof(T)) {
    93       ValidValues = new ItemSet<T>();
     92      this.validValues = new ItemSet<T>();
     93      Initialize();
    9494    }
    9595    public OptionalConstrainedValueParameter(string name, string description, ItemSet<T> validValues)
    9696      : base(name, description, typeof(T)) {
    97       ValidValues = validValues;
     97      this.validValues = validValues;
     98      Initialize();
    9899    }
    99100    public OptionalConstrainedValueParameter(string name, string description, ItemSet<T> validValues, T value)
    100101      : base(name, description, typeof(T)) {
    101       ValidValues = validValues;
    102       Value = value;
     102      this.validValues = validValues;
     103      this.value = value;
     104      Initialize();
     105    }
     106    [StorableConstructor]
     107    protected OptionalConstrainedValueParameter(bool deserializing) : base(deserializing) { }
     108
     109    [StorableHook(HookType.AfterDeserialization)]
     110    private void Initialize() {
     111      RegisterValidValuesEvents();
     112      if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);
    103113    }
    104114
    105115    public override IDeepCloneable Clone(Cloner cloner) {
    106116      OptionalConstrainedValueParameter<T> clone = (OptionalConstrainedValueParameter<T>)base.Clone(cloner);
    107       clone.ValidValues = (ItemSet<T>)cloner.Clone(validValues);
    108       clone.Value = (T)cloner.Clone(value);
     117      clone.validValues = (ItemSet<T>)cloner.Clone(validValues);
     118      clone.value = (T)cloner.Clone(value);
     119      clone.Initialize();
    109120      return clone;
    110121    }
Note: See TracChangeset for help on using the changeset viewer.