Changeset 10448
- Timestamp:
- 02/06/14 16:36:59 (11 years ago)
- Location:
- trunk/sources/HeuristicLab.Data/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Data/3.3
- Property svn:mergeinfo changed
/branches/2135-PercentValue/3.3 (added) merged: 10326-10327,10352,10405
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Data/3.3/PercentValue.cs
r9456 r10448 20 20 #endregion 21 21 22 using System; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 28 29 [StorableClass] 29 30 public class PercentValue : DoubleValue { 31 [Storable(DefaultValue = false)] 32 private bool restrictToUnitInterval = false; 33 public bool RestrictToUnitInterval { 34 get { return restrictToUnitInterval; } 35 } 36 37 public override double Value { 38 get { return base.Value; } 39 set { 40 if (restrictToUnitInterval && (value < 0 || value > 1)) 41 throw new ArgumentException("Value must lie in the interval [0,1]."); 42 base.Value = value; 43 } 44 } 45 30 46 [StorableConstructor] 31 47 protected PercentValue(bool deserializing) : base(deserializing) { } 32 48 protected PercentValue(PercentValue original, Cloner cloner) 33 49 : base(original, cloner) { 50 restrictToUnitInterval = original.restrictToUnitInterval; 34 51 } 35 52 public PercentValue() : base() { } 36 53 public PercentValue(double value) : base(value) { } 54 55 public PercentValue(double value, bool restrictToUnitInterval) 56 : base() { 57 this.restrictToUnitInterval = restrictToUnitInterval; 58 if (restrictToUnitInterval && (value < 0 || value > 1)) 59 throw new ArgumentException("Value must lie in the interval [0,1]."); 60 this.value = value; 61 } 37 62 38 63 public override IDeepCloneable Clone(Cloner cloner) { … … 46 71 protected override bool Validate(string value, out string errorMessage) { 47 72 value = value.Replace("%", " "); 48 return base.Validate(value, out errorMessage); 73 bool valid = base.Validate(value, out errorMessage); 74 if (!restrictToUnitInterval || !valid) return valid; 75 76 double val = double.Parse(value); 77 if (val < 0 || val > 1) { 78 errorMessage = "Value must lie in the interval [0,1]."; 79 return false; 80 } 81 return true; 49 82 } 83 50 84 protected override string GetValue() { 51 85 return Value.ToString("#0.#################### %"); // percent format
Note: See TracChangeset
for help on using the changeset viewer.