package gr.uoa.di.webui.search;

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import org.apache.log4j.Logger;

import eu.dnetlib.domain.enabling.Vocabulary;

public class LocaleVocabularyMap {

	private Map<String, Map<Locale,Vocabulary>> map = new HashMap<String, Map<Locale, Vocabulary>>();
	
	private static Logger logger = Logger.getLogger(LocaleVocabularyMap.class);
	
	public void addVocabulary(String fieldname, Locale locale, Vocabulary vocabulary){		
		logger.debug("adding vocabulary " + vocabulary.getName() + " for field " + fieldname.toLowerCase() + " with locale " + locale);

		Map<Locale, Vocabulary> entry = map.get(fieldname.toLowerCase());		
		if (entry == null) {
			entry = new HashMap<Locale, Vocabulary>();
		}
		
		entry.put(locale, vocabulary);
		map.put(fieldname.toLowerCase(), entry);
	}
	
	public Vocabulary getVocabulary(String fieldname, Locale locale) {
		Map<Locale, Vocabulary> entry = map.get(fieldname.toLowerCase());
		Vocabulary vocabulary = null;
		
//		logger.debug("Getting vocabulary of " + fieldname + " and locale "+ locale);
		
		if (entry != null) {
			vocabulary = entry.get(locale);
			if (vocabulary == null) {
				vocabulary = entry.get(Locale.ROOT);
			}
		}
		
		return vocabulary;		
	}
}
