Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/22/11 16:45:46 (13 years ago)
Author:
mkommend
Message:

#1418: Merged trunk changes into branch.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs

    r5445 r5796  
    4949      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
    5050    }
     51    public ValueParameter<BoolValue> TraceSelectedOperatorParameter {
     52      get { return (ValueParameter<BoolValue>)Parameters["TraceSelectedOperator"]; }
     53    }
     54    public LookupParameter<StringValue> SelectedOperatorParameter {
     55      get { return (LookupParameter<StringValue>)Parameters["SelectedOperator"]; }
     56    }
    5157
    5258    public DoubleArray Probabilities {
    5359      get { return ProbabilitiesParameter.Value; }
    5460      set { ProbabilitiesParameter.Value = value; }
     61    }
     62
     63    [StorableHook(HookType.AfterDeserialization)]
     64    private void AfterDeserializationHook() {
     65      #region Backwards Compatibility
     66      if (!Parameters.ContainsKey("SelectedOperator")) {
     67        Parameters.Add(new LookupParameter<StringValue>("SelectedOperator", "If the TraceSelectedOperator flag is set, the name of the operator is traced in this parameter."));
     68      }
     69      if (!Parameters.ContainsKey("TraceSelectedOperator")) {
     70        Parameters.Add(new ValueParameter<BoolValue>("TraceSelectedOperator", "Indicates, if the selected operator should be traced.", new BoolValue(false)));
     71      }
     72      #endregion
    5573    }
    5674
     
    6886      Parameters.Add(new ValueLookupParameter<DoubleArray>("Probabilities", "The array of relative probabilities for each operator.", new DoubleArray()));
    6987      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
     88      Parameters.Add(new LookupParameter<StringValue>("SelectedOperator", "If the TraceSelectedOperator flag is set, the name of the operator is traced in this parameter."));
     89      Parameters.Add(new ValueParameter<BoolValue>("TraceSelectedOperator", "Indicates, if the selected operator should be traced.", new BoolValue(false)));
    7090    }
    7191
     
    116136      }
    117137      IOperator successor = null;
     138      int index = -1;
    118139      var checkedOperators = Operators.CheckedItems;
    119140      if (checkedOperators.Count() > 0) {
     
    127148          if (sum > r) {
    128149            successor = indexedItem.Value;
     150            index = indexedItem.Index;
    129151            break;
    130152          }
     
    133155      OperationCollection next = new OperationCollection(base.Apply());
    134156      if (successor != null) {
     157        if (TraceSelectedOperatorParameter.Value.Value)
     158          SelectedOperatorParameter.ActualValue = new StringValue(index + ": " + successor.Name);
     159
    135160        if (CreateChildOperation)
    136161          next.Insert(0, ExecutionContext.CreateChildOperation(successor));
    137162        else next.Insert(0, ExecutionContext.CreateOperation(successor));
     163      } else {
     164        if (TraceSelectedOperatorParameter.Value.Value)
     165          SelectedOperatorParameter.ActualValue = new StringValue("");
    138166      }
    139167      return next;
Note: See TracChangeset for help on using the changeset viewer.