Changeset 8535 for branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding/3.3/ConstrainedTypeValue.cs
- Timestamp:
- 08/29/12 09:22:21 (12 years ago)
- 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 22 using System; 2 23 using System.Collections.Generic; 3 24 using System.Linq; … … 11 32 [StorableClass] 12 33 public class ConstrainedTypeValue : TypeValue { 13 14 34 private IEnumerable<Type> validTypes; 15 35 public IEnumerable<Type> ValidTypes { … … 25 45 } 26 46 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 } 27 55 public ConstrainedTypeValue() 28 56 : base() { … … 33 61 this.Value = value; 34 62 } 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 }43 63 public override IDeepCloneable Clone(Cloner cloner) { 44 64 return new ConstrainedTypeValue(this, cloner); 45 65 } 66 #endregion 46 67 } 47 68 … … 49 70 [StorableClass] 50 71 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) { } 52 80 public ConstrainedTypeValue() 53 81 : base() { … … 60 88 this.Value = value; 61 89 } 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) { }72 90 public override IDeepCloneable Clone(Cloner cloner) { 73 91 return new ConstrainedTypeValue<T>(this, cloner);
Note: See TracChangeset
for help on using the changeset viewer.