Changeset 17394 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs
- Timestamp:
- 01/07/20 16:25:39 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs
r17379 r17394 11 11 public abstract class BaseConverter : IJsonItemConverter 12 12 { 13 public void Inject(IItem item, JsonItem data) { 14 InjectData(item, data); 13 public abstract int Priority { get; } 14 public abstract Type ConvertableType { get; } 15 16 public void Inject(IItem item, JsonItem data, IJsonItemConverter root) { 17 18 InjectData(item, data, root); 15 19 } 16 20 17 public JsonItem Extract(IItem value ) {18 JsonItem data = ExtractData(value);19 data.Name = string.IsNullOrEmpty(data.Name) ? value.ItemName : data.Name;21 public JsonItem Extract(IItem value, IJsonItemConverter root) { 22 JsonItem data = new JsonItem() { Name = value.ItemName }; 23 Populate(value, data, root); 20 24 return data; 21 25 } 22 26 23 public abstract void InjectData(IItem item, JsonItem data );24 public abstract JsonItem ExtractData(IItem value);27 public abstract void InjectData(IItem item, JsonItem data, IJsonItemConverter root); 28 public abstract void Populate(IItem value, JsonItem item, IJsonItemConverter root); 25 29 26 30 #region Helper 27 31 protected ValueType CastValue<ValueType>(object obj) { 28 32 if (obj is JToken) 29 return obj.Cast<JToken>().ToObject<ValueType>();33 return ((JToken)obj).ToObject<ValueType>(); 30 34 else if (obj is IConvertible) 31 return Convert.ChangeType(obj, typeof(ValueType)).Cast<ValueType>();35 return (ValueType)Convert.ChangeType(obj, typeof(ValueType)); 32 36 else return (ValueType)obj; 33 37 }
Note: See TracChangeset
for help on using the changeset viewer.