package ru.hflabs.rcd.service;
import ru.hflabs.rcd.model.change.Diff;
import java.util.Collection;
/**
* Интерфейс <class>IDifferenceService</class> декларирует методы сервиса работы с информацией об изменении сущностей
*
* @see Diff
*/
public interface IDifferenceService<E> {
/**
* Выполняет построение коллекции {@link Diff}-ов
*
* @param from старое значение сущности
* @param to новое значение сущности
* @return Возвращает коллекцию изменений или <code>NULL</code>, если изменений не обнаружено
*/
Collection<Diff> createDiff(E from, E to);
/**
* Выполняет создание хеш суммы полей, которые учествуют в построении {@link Diff}-ов
*
* @param target целевая сущность
* @return Возвращает хеш код сущности
*/
String createHashCode(E target);
}