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);
///
/// The targeted type for the converter.
///
Type ConvertableType { get; }
///
/// A given priority, higher numbers are prior.
///
int Priority { get; }
}
}