package ddth.dasp.common.mls;
import java.util.Locale;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* This language pack manages language elements using {@link Properties}.
*
* @author NBThanh <btnguyen2k@gmail.com>
*/
public class PropsBasedLanguage extends AbstractLanguage {
private Logger LOGGER = LoggerFactory.getLogger(PropsBasedLanguage.class);
private Properties languageDef = new Properties();
public PropsBasedLanguage() {
}
public PropsBasedLanguage(Locale locale, String name) {
super(locale, name);
}
/**
* {@inheritDoc}
*/
@Override
public void init() throws Exception {
super.init();
languageDef.clear();
}
/**
* Loads language elements from a {@link Properties}.
*
* Note: this method clears all existing language elements.
*
* @param props
*/
public void loadLanguage(Properties props) {
if (props != null) {
languageDef.clear();
languageDef.putAll(props);
}
}
/**
* Adds language elements from a {@link Properties}.
*
* @param props
*/
public void addLanguage(Properties props) {
if (props != null) {
languageDef.putAll(props);
}
}
/**
* {@inheritDoc}
*/
@Override
public String getMessage(String key) {
String value = languageDef.getProperty(key);
if (value == null && LOGGER.isDebugEnabled()) {
LOGGER.debug("Language element [" + key + "] not found!");
}
return value;
}
}