package ru.hflabs.rcd.service;
import ru.hflabs.rcd.model.connector.ConnectorConfiguration;
import ru.hflabs.rcd.model.connector.TransferDictionaryDescriptor;
import ru.hflabs.rcd.model.connector.TransferRuleDescriptor;
/**
* Интерфейс <class>IDocumentConnector</class> декларирует методы сервиса формирования документов
*
* @see TransferDictionaryDescriptor
* @see TransferRuleDescriptor
*/
public interface IDocumentConnector<T extends ConnectorConfiguration, R> {
/**
* Формирует контент коллекции справочников
*
* @param settings настройки формирования коллекции
* @return Возвращает сформированную коллекцию справочников
*/
TransferDictionaryDescriptor readDictionaries(T settings);
/**
* Сохраняет контент коллекции справочников
*
* @param settings настройки коннектора
* @param descriptor дескриптор сохранения
* @return Возвращает артефакт сохранения
*/
R writeDictionaries(T settings, TransferDictionaryDescriptor descriptor);
/**
* Формирует коллекцию правил перекодирования
*
* @param settings настройки для формирования коллекции
* @return Возвращает коллекцию правил перекодирования
*/
TransferRuleDescriptor readRecodeRules(T settings);
/**
* Сохраняет контент правил перекодирования
*
* @param settings настройки коннектора
* @param descriptor дескриптор сохранения
* @return Возвращает артефакт сохранения
*/
R writeRecodeRules(T settings, TransferRuleDescriptor descriptor);
}