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