package ru.hflabs.rcd.service;
import ru.hflabs.rcd.model.Identifying;
import ru.hflabs.rcd.model.criteria.CriteriaHolder;
import ru.hflabs.rcd.model.criteria.FilterActivity;
/**
* Интерфейс <class>IActivityBuilder</class> декларирует методы построение критерия активности документов
*
* @see FilterActivity
*/
public interface IActivityBuilder<E extends Identifying, C extends CriteriaHolder<Q>, Q> {
/**
* Проверяет и возвращает <code>TRUE</code>, если сервис поддерживает текущий класс критерии
*
* @param targetClass проверяемый класс
* @return Возвращает флаг проверки
*/
boolean isSupport(Class<?> targetClass);
/**
* Выполняет построение критерия активности документов
*
* @param current текущий критерий
* @param criteriaClass целевой класс критерии
* @param activity активность документов
* @return Возвращает модифицированный критерий
*/
C createActivity(C current, Class<E> criteriaClass, FilterActivity activity);
}