Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/15/12 09:11:17 (12 years ago)
Author:
gkronber
Message:

#1081 merged r7462:7609 from trunk into time series branch

Location:
branches/HeuristicLab.TimeSeries
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries

  • branches/HeuristicLab.TimeSeries/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs

    r7268 r7615  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
    2324using System.Linq;
     
    8485    public virtual void CollectParameterValues(IDictionary<string, IItem> values) {
    8586      foreach (IValueParameter param in parameters.OfType<IValueParameter>()) {
    86         if (param.GetsCollected && param.Value != null) values.Add(param.Name, param.Value);
    87         if (param.Value is IParameterizedItem) {
    88           Dictionary<string, IItem> children = new Dictionary<string, IItem>();
    89           ((IParameterizedItem)param.Value).CollectParameterValues(children);
    90           foreach (string key in children.Keys)
    91             values.Add(param.Name + "." + key, children[key]);
     87        if (param.GetsCollected) {
     88          var children = GetCollectedValues(param.Value);
     89          foreach (var c in children) {
     90            if (String.IsNullOrEmpty(c.Key))
     91              values.Add(param.Name, c.Value);
     92            else values.Add(param.Name + "." + c.Key, c.Value);
     93          }
    9294        }
     95      }
     96    }
     97
     98    protected virtual IEnumerable<KeyValuePair<string, IItem>> GetCollectedValues(IItem value) {
     99      if (value == null) yield break;
     100      yield return new KeyValuePair<string, IItem>(String.Empty, value);
     101      var parameterizedItem = value as IParameterizedItem;
     102      if (parameterizedItem != null) {
     103        var children = new Dictionary<string, IItem>();
     104        parameterizedItem.CollectParameterValues(children);
     105        foreach (var child in children) yield return child;
    93106      }
    94107    }
Note: See TracChangeset for help on using the changeset viewer.