package pl.net.bluesoft.rnd.processtool.dict.mapping; import pl.net.bluesoft.rnd.processtool.dict.mapping.metadata.dict.CustomDictDescription; import pl.net.bluesoft.rnd.processtool.dict.mapping.metadata.dict.DictDescription; import pl.net.bluesoft.rnd.processtool.dict.mapping.metadata.dict.GlobalDictDescription; import pl.net.bluesoft.rnd.processtool.dict.mapping.metadata.dict.ProcessDictDescription; import java.util.HashMap; import java.util.Map; /** * User: POlszewski * Date: 2012-01-02 * Time: 22:25:04 */ public class DictDescriptionBuilder { private final Map<String, DictDescription> descs = new HashMap<String, DictDescription>(); public <T extends DictDescription> T defineDictionary(String name, T desc) { descs.put(name, desc); return desc; } public ProcessDictDescription defineProcessDictionary(String name) { return defineDictionary(name, new ProcessDictDescription(name)); } public ProcessDictDescription defineProcessDictionary(String name, Class<?> entryClass) { return (ProcessDictDescription)defineProcessDictionary(name).setEntryClass(entryClass); } public GlobalDictDescription defineGlobalDictionary(String name) { return defineDictionary(name, new GlobalDictDescription(name)); } public GlobalDictDescription defineGlobalDictionary(String name, Class<?> entryClass) { return (GlobalDictDescription)defineGlobalDictionary(name).setEntryClass(entryClass); } public CustomDictDescription defineCustomDictionary(String name) { return defineDictionary(name, new CustomDictDescription(name)); } public DictDescription getDictDescription(String dictName) { return descs.get(dictName); } }