Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
LocalizedBundle |
|
| 1.0;1 |
1 | /* | |
2 | * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons-sandbox//i18n/src/java/org/apache/commons/i18n/LocalizedBundle.java,v 1.3 2004/12/29 17:03:55 dflorey Exp $ | |
3 | * $Revision: 480489 $ | |
4 | * $Date: 2006-11-29 09:00:46 +0000 (Wed, 29 Nov 2006) $ | |
5 | * | |
6 | * ==================================================================== | |
7 | * | |
8 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
9 | * contributor license agreements. See the NOTICE file distributed with | |
10 | * this work for additional information regarding copyright ownership. | |
11 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
12 | * (the "License"); you may not use this file except in compliance with | |
13 | * the License. You may obtain a copy of the License at | |
14 | * | |
15 | * http://www.apache.org/licenses/LICENSE-2.0 | |
16 | * | |
17 | * Unless required by applicable law or agreed to in writing, software | |
18 | * distributed under the License is distributed on an "AS IS" BASIS, | |
19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
20 | * See the License for the specific language governing permissions and | |
21 | * limitations under the License. | |
22 | * | |
23 | */ | |
24 | ||
25 | package org.apache.commons.i18n; | |
26 | ||
27 | import java.io.Serializable; | |
28 | import java.util.Locale; | |
29 | ||
30 | /** | |
31 | * | |
32 | * <p>The <code>LocalizedBundle</code> class represents a bundle of localized messages that | |
33 | * belong together.</p> | |
34 | * <p> The <code>LocalizedBundle</code> class itself contains the message id and the arguments | |
35 | * that might be used to include dynamic values into the message text. | |
36 | * The message id specifies the base name of the message bundle. | |
37 | * Single entries of the message bundle can be retrieved using the <code>getText()</code> method by passing | |
38 | * the key of the desired message entry.</p> | |
39 | * This class should not be used directly in order to retrieve entries of a message bundle. It is recommended | |
40 | * to subclass the <code>LocalizedBundle</code> class in order to define a specific localized bundle. | |
41 | * @see org.apache.commons.i18n.bundles.TextBundle, MessageBundle, ErrorBundle | |
42 | */ | |
43 | public class LocalizedBundle implements Serializable { | |
44 | public final static String ID = "id"; | |
45 | ||
46 | protected String providerId; | |
47 | protected String id; | |
48 | protected Object[] arguments; | |
49 | ||
50 | /** | |
51 | * @param providerId The name of the message provider (i.e. source) to use for the message | |
52 | * @param messageId The messageId refers the corresponding bundle in the file containing | |
53 | * the localized messages. | |
54 | */ | |
55 | public LocalizedBundle(String providerId, String messageId) { | |
56 | 5 | this(providerId, messageId, new Object[0]); |
57 | 5 | } |
58 | ||
59 | /** | |
60 | * @param messageId The messageId refers the corresponding bundle in the file containing | |
61 | * the localized messages. | |
62 | */ | |
63 | public LocalizedBundle(String messageId) { | |
64 | 13 | this(messageId, new Object[0]); |
65 | 13 | } |
66 | ||
67 | /** | |
68 | * @param messageId The messageId refers the corresponding bundle in the file containing | |
69 | * the localized messages. | |
70 | * @param arguments An array of objects containing arguments for the messages. These arguments | |
71 | * are used to insert dynamic values into the localized messages. | |
72 | */ | |
73 | 18 | public LocalizedBundle(String messageId, Object[] arguments) { |
74 | 18 | this.id = messageId; |
75 | 18 | this.arguments = arguments; |
76 | 18 | } |
77 | ||
78 | /** | |
79 | * @param providerId The name of the message provider (i.e. source) to use for the message | |
80 | * @param messageId The messageId refers the corresponding bundle in the file containing | |
81 | * the localized messages. | |
82 | * @param arguments An array of objects containing arguments for the messages. These arguments | |
83 | * are used to insert dynamic values into the localized messages. | |
84 | */ | |
85 | 10 | public LocalizedBundle(String providerId, String messageId, Object[] arguments) { |
86 | 10 | this.providerId = providerId; |
87 | 10 | this.id = messageId; |
88 | 10 | this.arguments = arguments; |
89 | 10 | } |
90 | ||
91 | /** | |
92 | * @return returns the id of this bundle | |
93 | */ | |
94 | public String getId() { | |
95 | 10 | return id; |
96 | } | |
97 | ||
98 | /** | |
99 | * @return returns the arguments associated with this message bundle | |
100 | */ | |
101 | public Object[] getArguments() { | |
102 | 10 | return arguments; |
103 | } | |
104 | ||
105 | /** | |
106 | * @return The name of the message provider (i.e. source) to use for the message | |
107 | */ | |
108 | public String getProviderId() { | |
109 | 4 | return providerId; |
110 | } | |
111 | ||
112 | /** | |
113 | * @param key the key of the specific message entry in the message bundle | |
114 | * @param locale the locale for that this message should be rendered | |
115 | * @return returns the text of the desired message entry for the given locale | |
116 | * @throws MessageNotFoundException if an entry with the given key can not be found | |
117 | * in this bundle | |
118 | */ | |
119 | public String getEntry(String key, Locale locale) throws MessageNotFoundException { | |
120 | 56 | return providerId != null ? |
121 | MessageManager.getText(providerId, id, key, arguments, locale) : | |
122 | MessageManager.getText(id, key, arguments, locale); | |
123 | } | |
124 | ||
125 | /** | |
126 | * @param key the key of the specific message entry in the message bundle | |
127 | * @param locale the locale for that this message should be rendered | |
128 | * @param defaultText the text to be returned if no entry was found for the given key | |
129 | * @return returns the text of the desired message entry for the given locale | |
130 | */ | |
131 | public String getEntry(String key, Locale locale, String defaultText) { | |
132 | 60 | return providerId != null ? |
133 | MessageManager.getText(providerId, id, key, arguments, locale, defaultText) : | |
134 | MessageManager.getText(id, key, arguments, locale, defaultText); | |
135 | } | |
136 | } |