- Timestamp:
- 04/20/20 17:31:31 (4 years ago)
- Location:
- branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/Results
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/Results/IResultParameter.cs
r17226 r17517 28 28 public interface IResultParameter : ILookupParameter { 29 29 string ResultCollectionName { get; set; } 30 ResultCollection ResultCollection { get; set; } 31 30 32 event EventHandler ResultCollectionNameChanged; 31 33 } -
branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/Results/ResultParameter.cs
r17257 r17517 60 60 } 61 61 62 [Storable] 63 public ResultCollection ResultCollection { get; set; } 64 62 65 [StorableConstructor] 63 66 private ResultParameter(StorableConstructorFlag _) : base(_) { } … … 66 69 resultCollectionName = original.resultCollectionName; 67 70 defaultValue = cloner.Clone(original.defaultValue); 71 ResultCollection = cloner.Clone(original.ResultCollection); 68 72 } 69 73 public override IDeepCloneable Clone(Cloner cloner) { … … 89 93 90 94 protected override IItem GetActualValue() { 91 ResultCollection results; 92 if (CachedActualValue != null) { 93 results = CachedActualValue as ResultCollection; 94 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection not found."); 95 } else { 96 var tmp = ResultCollectionName; 97 // verifyType has to be disabled, because the ResultCollection may not be identical to the generic type of the parameter 98 results = GetValue(ExecutionContext, ref tmp) as ResultCollection; 99 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection with name " + tmp + " not found."); 100 CachedActualValue = results; 95 ResultCollection results = ResultCollection; 96 if (results == null) { 97 if (CachedActualValue != null) { 98 results = CachedActualValue as ResultCollection; 99 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection not found."); 100 } else { 101 var tmp = ResultCollectionName; 102 // verifyType has to be disabled, because the ResultCollection may not be identical to the generic type of the parameter 103 results = GetValue(ExecutionContext, ref tmp) as ResultCollection; 104 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection with name " + tmp + " not found."); 105 CachedActualValue = results; 106 } 101 107 } 102 108 103 109 IResult result; 104 110 if (!results.TryGetValue(ActualName, out result)) { 105 if (DefaultValue == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): Result not found and no default value specified.");111 if (DefaultValue == null) return null; 106 112 result = ItemDescription == Description ? new Result(ActualName, (T)DefaultValue.Clone()) : new Result(ActualName, Description, (T)DefaultValue.Clone()); 107 113 results.Add(result); … … 116 122 117 123 protected override void SetActualValue(IItem value) { 118 ResultCollection results; 119 if (CachedActualValue != null) { 120 results = CachedActualValue as ResultCollection; 121 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection not found."); 122 } else { 123 var tmp = ResultCollectionName; 124 results = GetValue(ExecutionContext, ref tmp) as ResultCollection; 125 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection with name " + tmp + " not found."); 126 CachedActualValue = results; 124 ResultCollection results = ResultCollection; 125 if (results == null) { 126 if (CachedActualValue != null) { 127 results = CachedActualValue as ResultCollection; 128 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection not found."); 129 } else { 130 var tmp = ResultCollectionName; 131 results = GetValue(ExecutionContext, ref tmp) as ResultCollection; 132 if (results == null) throw new InvalidOperationException("ResultParameter (" + ActualName + "): ResultCollection with name " + tmp + " not found."); 133 CachedActualValue = results; 134 } 127 135 } 128 136
Note: See TracChangeset
for help on using the changeset viewer.