tim@117: /** tim@117: * tim@117: */ tim@117: package de.intevation.gnv.artifacts.ressource; tim@117: tim@123: import java.util.MissingResourceException; tim@117: import java.util.ResourceBundle; tim@117: tim@117: import org.apache.log4j.Logger; tim@117: tim@118: import de.intevation.artifacts.PreferredLocale; tim@118: tim@117: /** tim@117: * @author Tim Englich tim@171: * tim@117: */ tim@117: public class RessourceFactory { tim@117: tim@117: /** tim@117: * the logger, used to log exceptions and additonaly information tim@117: */ tim@117: private static Logger log = Logger.getLogger(RessourceFactory.class); tim@171: tim@117: /** tim@117: * The singleton Instance of this Factory. tim@117: */ tim@117: private static RessourceFactory instance = null; tim@117: tim@117: private static String RESSOURCE_BASE_ID = "artifact.ressource.dir"; tim@171: tim@117: private static String ressourceName = "artifactMessages"; tim@171: private static String DEFAULT_DIR = "lang"; tim@171: tim@117: private String ressourceDir = null; tim@118: tim@117: /** tim@117: * Basic-Constructor of this Class tim@117: */ tim@117: private RessourceFactory() { tim@117: super(); sascha@121: ressourceDir = System.getProperty(RESSOURCE_BASE_ID, DEFAULT_DIR); tim@117: } tim@117: tim@117: /** tim@117: * This Method provides an singleton Instance of this Class. tim@171: * tim@117: * @return an singleton Instance of this Class tim@117: */ tim@171: public static synchronized RessourceFactory getInstance() { tim@171: if (instance == null) { tim@117: instance = new RessourceFactory(); tim@117: } tim@117: return instance; tim@117: } tim@171: tim@117: /** tim@117: * Deliveres the translated Value for an Key to an given Language tim@171: * tim@171: * @param locale tim@171: * The choosen locale tim@171: * @param key tim@171: * the key tim@171: * @param defaultValue tim@171: * the Value that should be returned. tim@117: * @return the translated Value tim@117: */ tim@171: public String getRessource(PreferredLocale[] preferredLocales, String key, tim@171: String defaultValue) { sascha@121: if (key == null || preferredLocales.length == 0) { sascha@121: return defaultValue; sascha@121: } sascha@121: tim@117: try { tim@171: ResourceBundle rb = ResourceBundle.getBundle(ressourceDir + "/" tim@171: + ressourceName, tim@171: preferredLocales[0].getLocale()); sascha@121: tim@117: return rb.getString(key); tim@171: } catch (MissingResourceException mre) { sascha@121: log.warn(mre.getLocalizedMessage()); tim@117: return defaultValue; tim@117: } tim@117: } tim@117: }