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; }
}
}