Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/29/12 09:22:21 (12 years ago)
Author:
jkarder
Message:

#1853:

  • enhanced combinations count calculation
  • restructured code
  • minor code improvements
  • added license information
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding/3.3/ConstrainedTypeValue.cs

    r8517 r8535  
    1 using System;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
    223using System.Collections.Generic;
    324using System.Linq;
     
    1132  [StorableClass]
    1233  public class ConstrainedTypeValue : TypeValue {
    13 
    1434    private IEnumerable<Type> validTypes;
    1535    public IEnumerable<Type> ValidTypes {
     
    2545    }
    2646
     47    #region Constructors and Cloning
     48    [StorableConstructor]
     49    protected ConstrainedTypeValue(bool deserializing) : base(deserializing) { }
     50    protected ConstrainedTypeValue(ConstrainedTypeValue original, Cloner cloner)
     51      : base(original, cloner) {
     52      if (original.validTypes != null)
     53        this.validTypes = new List<Type>(original.validTypes);
     54    }
    2755    public ConstrainedTypeValue()
    2856      : base() {
     
    3361      this.Value = value;
    3462    }
    35 
    36     [StorableConstructor]
    37     protected ConstrainedTypeValue(bool deserializing) : base(deserializing) { }
    38     protected ConstrainedTypeValue(ConstrainedTypeValue original, Cloner cloner)
    39       : base(original, cloner) {
    40       if (original.validTypes != null)
    41         this.validTypes = new List<Type>(original.validTypes);
    42     }
    4363    public override IDeepCloneable Clone(Cloner cloner) {
    4464      return new ConstrainedTypeValue(this, cloner);
    4565    }
     66    #endregion
    4667  }
    4768
     
    4970  [StorableClass]
    5071  public class ConstrainedTypeValue<T> : ConstrainedTypeValue where T : class, IItem {
    51 
     72    [StorableConstructor]
     73    protected ConstrainedTypeValue(bool deserializing)
     74      : base(deserializing) {
     75      if (deserializing) {
     76        this.ValidTypes = ApplicationManager.Manager.GetTypes(typeof(T), true).ToList();
     77      }
     78    }
     79    protected ConstrainedTypeValue(ConstrainedTypeValue original, Cloner cloner) : base(original, cloner) { }
    5280    public ConstrainedTypeValue()
    5381      : base() {
     
    6088      this.Value = value;
    6189    }
    62 
    63     [StorableConstructor]
    64     protected ConstrainedTypeValue(bool deserializing)
    65       : base(deserializing) {
    66       if (deserializing) {
    67         this.ValidTypes = ApplicationManager.Manager.GetTypes(typeof(T), true).ToList();
    68       }
    69     }
    70 
    71     protected ConstrainedTypeValue(ConstrainedTypeValue original, Cloner cloner) : base(original, cloner) { }
    7290    public override IDeepCloneable Clone(Cloner cloner) {
    7391      return new ConstrainedTypeValue<T>(this, cloner);
Note: See TracChangeset for help on using the changeset viewer.