annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/ressource/RessourceFactory.java @ 121:6b9a07f758cf

Move resources to a place where maven puts them into final package. Cleaned up changelog. gnv-artifacts/trunk@191 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 06 Oct 2009 11:04:52 +0000
parents 5ebc059064a6
children 8cc96c9cc962
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.ResourceBundle;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 import org.apache.log4j.Logger;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9
118
5ebc059064a6 Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
10 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
11
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 * @author Tim Englich <tim.englich@intevation.de>
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 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 public class RessourceFactory {
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 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 * the logger, used to log exceptions and additonaly information
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 private static Logger log = Logger.getLogger(RessourceFactory.class);
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 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 * The singleton Instance of this Factory.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 private static RessourceFactory instance = null;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 private static String RESSOURCE_BASE_ID = "artifact.ressource.dir";
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 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
31 private static String DEFAULT_DIR = "lang";
117
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 String ressourceDir = null;
118
5ebc059064a6 Adding Languagetransfer to the ArtifactDatabase to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
34
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 * Basic-Constructor of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 private RessourceFactory() {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 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
40 ressourceDir = System.getProperty(RESSOURCE_BASE_ID, DEFAULT_DIR);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 }
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 * This Method provides an singleton Instance of this Class.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 * @return an singleton Instance of this Class
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 */
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
47 public static synchronized RessourceFactory getInstance(){
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 if (instance == null){
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 instance = new RessourceFactory();
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 return instance;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 }
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 * Deliveres the translated Value for an Key to an given Language
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 * @param locale The choosen locale
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 * @param key the key
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 * @param defaultValue the Value that should be returned.
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * @return the translated Value
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 */
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
61 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
62 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
63 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
64 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
65 ) {
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 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
67 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
68 }
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
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 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
71 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
72 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
73 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
74
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 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
76 }
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 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
78 log.warn(mre.getLocalizedMessage());
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 return defaultValue;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 }
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 }

http://dive4elements.wald.intevation.org