Changeset 17266 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/TypeTransformer/BaseTransformer.cs
- Timestamp:
- 09/20/19 16:23:42 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/TypeTransformer/BaseTransformer.cs
r17263 r17266 7 7 using Newtonsoft.Json.Linq; 8 8 9 namespace ParameterTest{9 namespace HeuristicLab.Manufacture { 10 10 public abstract class BaseTransformer : ITypeTransformer 11 11 { 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 } 16 17 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 17 24 protected ValueType CastValue<ValueType>(object obj) { 18 25 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; 22 30 } 23 31 … … 26 34 27 35 protected IItem Instantiate<T>(params object[] args) => Instantiate(typeof(T), args); 36 #endregion 28 37 } 29 38 }
Note: See TracChangeset
for help on using the changeset viewer.