Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/20/19 16:23:42 (5 years ago)
Author:
dpiringe
Message:

#3026:

  • changed the namespace from ParameterTest to HeuristicLab.Manufacture
  • added an extension method for Type to get the distance of an interface based on the target type
  • renamed methods ToData, SetValue to Extract, Inject
  • new implementation of the template generation with transformers (not the final name)
  • started to use the new transformers for the instantiation of IOptimizer-objects (out of a template)
  • new transformers: LookupParameterTransformer and DummyTransformer
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/TypeTransformer/BaseTransformer.cs

    r17263 r17266  
    77using Newtonsoft.Json.Linq;
    88
    9 namespace ParameterTest {
     9namespace HeuristicLab.Manufacture {
    1010  public abstract class BaseTransformer : ITypeTransformer
    1111  {
    12     public abstract void SetValue(IItem item, ParameterData data);
    13     public abstract IItem FromData(ParameterData obj, Type targetType);
    14     public virtual ParameterData ToData(IItem value) =>
    15       new ParameterData() { Name = value.ItemName };
     12    public ParameterData Extract(IItem value) {
     13      ParameterData data = ExtractData(value);
     14      data.Name = String.IsNullOrEmpty(data.Name) ? value.ItemName : data.Name;
     15      return data;
     16    }
    1617
     18    public void Inject(IItem item, ParameterData data) => InjectData(item, data);
     19
     20    public abstract void InjectData(IItem item, ParameterData data);
     21    public abstract ParameterData ExtractData(IItem value);
     22
     23    #region Helper
    1724    protected ValueType CastValue<ValueType>(object obj) {
    1825      if (obj is JToken)
    19         return ((JToken)obj).ToObject<ValueType>();
    20       else
    21         return (ValueType)obj;
     26        return (obj.Cast<JToken>()).ToObject<ValueType>();
     27      else if (obj is IConvertible)
     28        return Convert.ChangeType(obj, typeof(ValueType)).Cast<ValueType>();
     29      else return (ValueType)obj;
    2230    }
    2331
     
    2634
    2735    protected IItem Instantiate<T>(params object[] args) => Instantiate(typeof(T), args);
     36    #endregion
    2837  }
    2938}
Note: See TracChangeset for help on using the changeset viewer.