package ru.hflabs.rcd.service; import ru.hflabs.rcd.RoleNames; import ru.hflabs.rcd.model.Identifying; import javax.annotation.security.RolesAllowed; import java.util.Collection; import java.util.Set; /** * Интерфейс <class>IFindService</class> декларирует методы сервиса поиска документов * * @see Identifying */ public interface IFindService<E extends Identifying> extends ISingleClassObserver<E> { /** * Возвращает документ по его идентификатору * * @param id идентификатор документа * @param fillTransitive флаг необходимости заполнения транзитивных зависимостей * @param quietly флаг безопасной проверки существования документа * @return Возвращает документ по его идентификатору или <code>NULL</code>, если установлен флаг <i>quietly</i> и такого документа не найдено */ @RolesAllowed(RoleNames.OPERATOR) E findByID(String id, boolean fillTransitive, boolean quietly); /** * Возвращает документы по их идентификаторам * * @param ids идентификаторы документов * @param fillTransitive флаг необходимости заполнения транзитивных зависимостей * @param quietly флаг безопасной проверки существования документов * @return Возвращает коллекцию найденных документов */ @RolesAllowed(RoleNames.OPERATOR) Collection<E> findByIDs(Set<String> ids, boolean fillTransitive, boolean quietly); }