annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/ressource/RessourceFactory.java @ 117:ef157bd2fa92

LanguageSupport integrated gnv-artifacts/trunk@178 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 02 Oct 2009 14:24:47 +0000
parents
children 5ebc059064a6
rev   line source
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.artifacts.ressource;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.util.Locale;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 import java.util.ResourceBundle;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 import org.apache.log4j.Logger;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 * @author Tim Englich <tim.englich@intevation.de>
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 *
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 public class RessourceFactory {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 * the logger, used to log exceptions and additonaly information
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 private static Logger log = Logger.getLogger(RessourceFactory.class);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 * The singleton Instance of this Factory.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 private static RessourceFactory instance = null;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 private static String RESSOURCE_BASE_ID = "artifact.ressource.dir";
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 private static String ressourceName = "artifactMessages";
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 private String ressourceDir = null;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 private Locale[] supportedLocales = null;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 * Basic-Constructor of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 private RessourceFactory() {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 super();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 ressourceDir = System.getProperty(RESSOURCE_BASE_ID);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 if (ressourceDir == null){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 ressourceDir = "de/intevation/gnv/artifacts/ressource";
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 supportedLocales = new Locale[1];
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 supportedLocales[0] = Locale.GERMAN;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 * This Method provides an singleton Instance of this Class.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 * @return an singleton Instance of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 public static RessourceFactory getInstance(){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 if (instance == null){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 instance = new RessourceFactory();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 return instance;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * Deliveres the translated Value for an Key to an given Language
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 * @param locale The choosen locale
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 * @param key the key
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 * @param defaultValue the Value that should be returned.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 * @return the translated Value
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 public String getRessource(Locale locale, String key, String defaultValue){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 ResourceBundle rb = ResourceBundle.getBundle(ressourceDir+"/"+ressourceName, locale);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 try {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 return rb.getString(key);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 } catch (Exception e) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 log.warn(e.getMessage());
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 return defaultValue;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 public Locale[] getSupportedLocales(){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 return supportedLocales;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 }

http://dive4elements.wald.intevation.org