using System; using HeuristicLab.Core; 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, IJsonItem 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. IJsonItem Extract(IItem value, IJsonItemConverter root); /// /// A given priority, higher numbers are prior. /// int Priority { get; } /// /// Checks if the given type can be converted. /// /// /// bool CanConvertType(Type t); } }