using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HeuristicLab.Core; using Newtonsoft.Json.Linq; namespace HeuristicLab.JsonInterface { public interface IJsonItemConverter { /// /// Injects the saved infos from the JsonItem into the IItem. /// (Sets the necessary values.) /// /// The IItem which get the data injected. /// The JsonItem with the saved values. void Inject(IItem item, JsonItem data, IJsonItemConverter root); /// /// Extracts all infos out of an IItem to create a JsonItem. /// (For template generation.) /// /// The IItem to extract infos. /// JsonItem with infos to reinitialise the IItem. JsonItem Extract(IItem value, IJsonItemConverter root); Type ConvertableType { get; } int Priority { get; } } }