annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/ressource/RessourceFactory.java @ 123:8cc96c9cc962

Added some missing RessourceValues gnv-artifacts/trunk@194 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 06 Oct 2009 13:51:28 +0000
parents 6b9a07f758cf
children 7fb9441dd8af
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
123
8cc96c9cc962 Added some missing RessourceValues
Tim Englich <tim.englich@intevation.de>
parents: 121
diff changeset
6 import java.util.MissingResourceException;
117
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
118
5ebc059064a6 Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
11 import de.intevation.artifacts.PreferredLocale;
5ebc059064a6 Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
12
117
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 * @author Tim Englich <tim.englich@intevation.de>
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 *
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 public class RessourceFactory {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18
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 * the logger, used to log exceptions and additonaly information
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 private static Logger log = Logger.getLogger(RessourceFactory.class);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23
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 * The singleton Instance of this Factory.
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 RessourceFactory instance = null;
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 RESSOURCE_BASE_ID = "artifact.ressource.dir";
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 static String ressourceName = "artifactMessages";
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
32 private static String DEFAULT_DIR = "lang";
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 private String ressourceDir = null;
118
5ebc059064a6 Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
35
117
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 * Basic-Constructor of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 private RessourceFactory() {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 super();
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
41 ressourceDir = System.getProperty(RESSOURCE_BASE_ID, DEFAULT_DIR);
117
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
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 * This Method provides an singleton Instance of this Class.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 * @return an singleton Instance of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 */
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
48 public static synchronized RessourceFactory getInstance(){
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 if (instance == null){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 instance = new RessourceFactory();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 return instance;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 }
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 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 * Deliveres the translated Value for an Key to an given Language
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 * @param locale The choosen locale
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 * @param key the key
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * @param defaultValue the Value that should be returned.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 * @return the translated Value
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 */
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
62 public String getRessource(
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
63 PreferredLocale [] preferredLocales,
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
64 String key,
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
65 String defaultValue
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
66 ) {
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
67 if (key == null || preferredLocales.length == 0) {
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
68 return defaultValue;
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
69 }
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
70
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 try {
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
72 ResourceBundle rb = ResourceBundle.getBundle(
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
73 ressourceDir + "/" + ressourceName,
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
74 preferredLocales[0].getLocale());
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
75
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 return rb.getString(key);
121
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
77 }
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
78 catch (MissingResourceException mre) {
6b9a07f758cf Move resources to a place where maven puts them into final package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 118
diff changeset
79 log.warn(mre.getLocalizedMessage());
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 return defaultValue;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 }

http://dive4elements.wald.intevation.org