package pl.net.bluesoft.rnd.processtool.dao;
import pl.net.bluesoft.rnd.processtool.hibernate.HibernateBean;
import pl.net.bluesoft.rnd.processtool.model.config.ProcessDefinitionConfig;
import pl.net.bluesoft.rnd.processtool.model.dict.db.ProcessDBDictionary;
import java.util.List;
public interface ProcessDictionaryDAO extends HibernateBean<ProcessDBDictionary> {
ProcessDBDictionary fetchProcessDictionary(ProcessDefinitionConfig definition, String dictionaryId, String languageCode);
List<ProcessDBDictionary> fetchProcessDictionaries(ProcessDefinitionConfig definition);
List<ProcessDBDictionary> fetchAllProcessDictionaries();
ProcessDBDictionary fetchGlobalDictionary(String dictionaryId, String languageCode);
List<ProcessDBDictionary> fetchAllGlobalDictionaries();
void createOrUpdateDictionary(ProcessDefinitionConfig definition, ProcessDBDictionary dictionary, boolean overwrite);
void createOrUpdateDictionaries(ProcessDefinitionConfig definition, List<ProcessDBDictionary> dictionary, boolean overwrite);
void updateDictionary(ProcessDBDictionary dictionary);
void copyDictionaries(ProcessDefinitionConfig oldDefinitionConfig,
ProcessDefinitionConfig newDefinitionConfig);
/** Add or update dictionary item with given key and value, for specified dictionary id */
void createOrUpdateDictionaryItem(ProcessDBDictionary dictionary,String dictionaryItemKey, String dictionaryItemValue);
}