1 /*
2 * Copyright 2001-2008 The Apache Software Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.apache.juddi.webconsole.resources;
17
18 import java.util.HashMap;
19 import java.util.Locale;
20 import java.util.Map;
21 import java.util.MissingResourceException;
22 import java.util.ResourceBundle;
23 import javax.servlet.http.HttpSession;
24
25 /**
26 * This a resource loader for specific locales for internationalization,
27 * provides some basic caching to prevent round trip disk access
28 *
29 * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
30 */
31 public class ResourceLoader {
32
33 private static Map map = new HashMap();
34
35 /**
36 * returns a localized string in the locale defined within
37 * session.getAttribute("locale") or in the default locale, en
38 *
39 * @param session
40 * @param key
41 * @return a localized string
42 * @throws IllegalArgumentException if the key is null
43 * @throws MissingResourceException if the resource bundle can't be
44 * found
45 */
46 public static String GetResource(HttpSession session, String key) throws MissingResourceException {
47 if (key == null) {
48 throw new IllegalArgumentException("key");
49 }
50 String locale = "en";
51 if (session != null) {
52 locale = (String) session.getAttribute("locale");
53 }
54 if (locale==null)
55 locale = "en";
56 return GetResource(locale, key);
57 }
58
59 /**
60 * returns a localized string in the locale defined within locale or in
61 * the default locale, en
62 *
63 * @param locale
64 * @param key
65 * @return a localized string
66 * @throws IllegalArgumentException if the key is null
67 * @throws MissingResourceException if the resource bundle can't be
68 * found
69 */
70 public static String GetResource(String locale, String key) throws MissingResourceException {
71 if (key == null) {
72 throw new IllegalArgumentException("key");
73 }
74
75 ResourceBundle bundle = (ResourceBundle) map.get(locale);
76 if (bundle == null) {
77 bundle = ResourceBundle.getBundle("org.apache.juddi.webconsole.resources.web", new Locale(locale));
78 map.put(locale, bundle);
79 }
80 try {
81 return bundle.getString(key.trim());
82 } catch (Exception ex) {
83 return "key " + key + " not found " + ex.getMessage();
84 }
85 }
86 }