Changeset 3662 for trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalyzer.cs
- Timestamp:
- 05/06/10 02:46:37 (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalyzer.cs
r3659 r3662 20 20 #endregion 21 21 22 using System; 23 using HeuristicLab.Common; 22 24 using HeuristicLab.Core; 23 25 using HeuristicLab.Data; … … 30 32 namespace HeuristicLab.Analysis { 31 33 /// <summary> 32 /// An operator which analyzes a value in the current population.34 /// An operator which analyzes a value in the scope tree. 33 35 /// </summary> 34 [Item(" PopulationValueAnalyzer", "An operator which analyzes a value in the current population.")]36 [Item("ValueAnalyzer", "An operator which analyzes a value in the scope tree.")] 35 37 [StorableClass] 36 public sealed class PopulationValueAnalyzer : AlgorithmOperator, IAnalyzer {38 public sealed class ValueAnalyzer : AlgorithmOperator, IAnalyzer { 37 39 #region Parameter properties 38 40 public ScopeTreeLookupParameter<DoubleValue> ValueParameter { … … 47 49 #endregion 48 50 49 [StorableConstructor] 50 private PopulationValueAnalyzer(bool deserializing) : base() { } 51 public PopulationValueAnalyzer() 51 #region Properties 52 private DataTableValuesCollector DataTableValuesCollector { 53 get { return (DataTableValuesCollector)OperatorGraph.InitialOperator; } 54 } 55 private ResultsCollector ResultsCollector { 56 get { return (ResultsCollector)DataTableValuesCollector.Successor; } 57 } 58 #endregion 59 60 public ValueAnalyzer() 52 61 : base() { 53 Initialize();54 }55 56 private void Initialize() {57 62 #region Create parameters 58 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in each solutionwhich should be analyzed."));63 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in the scope tree which should be analyzed.")); 59 64 Parameters.Add(new ValueLookupParameter<DataTable>("Values", "The data table to store the values.")); 60 65 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The results collection where the analysis values should be stored.")); … … 65 70 ResultsCollector resultsCollector = new ResultsCollector(); 66 71 67 dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value")); 68 dataTableValuesCollector.DataTableParameter.ActualName = "Values"; 72 dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, ValueParameter.Name)); 73 ((ScopeTreeLookupParameter<DoubleValue>)dataTableValuesCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth; 74 dataTableValuesCollector.DataTableParameter.ActualName = ValuesParameter.Name; 69 75 70 resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value")); 71 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Values")); 72 resultsCollector.ResultsParameter.ActualName = "Results"; 76 resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, ValueParameter.Name)); 77 ((ScopeTreeLookupParameter<DoubleValue>)resultsCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth; 78 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(ValuesParameter.Name)); 79 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name; 73 80 #endregion 74 81 … … 78 85 resultsCollector.Successor = null; 79 86 #endregion 87 88 Initialize(); 89 } 90 [StorableConstructor] 91 private ValueAnalyzer(bool deserializing) : base() { } 92 93 [StorableHook(HookType.AfterDeserialization)] 94 private void Initialize() { 95 ValueParameter.DepthChanged += new EventHandler(ValueParameter_DepthChanged); 96 } 97 98 public override IDeepCloneable Clone(Cloner cloner) { 99 ValueAnalyzer clone = (ValueAnalyzer)base.Clone(cloner); 100 clone.Initialize(); 101 return clone; 102 } 103 104 private void ValueParameter_DepthChanged(object sender, System.EventArgs e) { 105 ((ScopeTreeLookupParameter<DoubleValue>)DataTableValuesCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth; 106 ((ScopeTreeLookupParameter<DoubleValue>)ResultsCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth; 80 107 } 81 108 }
Note: See TracChangeset
for help on using the changeset viewer.