KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > context > MessageSource


1 /*
2  * Copyright 2002-2006 the original author or authors.
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
17 package org.springframework.context;
18
19 import java.util.Locale JavaDoc;
20
21 /**
22  * Strategy interface for resolving messages, with support for the parameterization
23  * and internationalization of such messages.
24  *
25  * <p>Spring provides two out-of-the-box implementations for production:
26  * <ul>
27  * <li>{@link org.springframework.context.support.ResourceBundleMessageSource},
28  * built on top of the standard {@link java.util.ResourceBundle}
29  * <li>{@link org.springframework.context.support.ReloadableResourceBundleMessageSource},
30  * being able to reload message definitions without restarting the VM
31  * </ul>
32  *
33  * @author Rod Johnson
34  * @author Juergen Hoeller
35  * @see org.springframework.context.support.ResourceBundleMessageSource
36  * @see org.springframework.context.support.ReloadableResourceBundleMessageSource
37  */

38 public interface MessageSource {
39
40     /**
41      * Try to resolve the message. Return default message if no message was found.
42      * @param code the code to lookup up, such as 'calculator.noRateSet'. Users of
43      * this class are encouraged to base message names on the relevant fully
44      * qualified class name, thus avoiding conflict and ensuring maximum clarity.
45      * @param args array of arguments that will be filled in for params within
46      * the message (params look like "{0}", "{1,date}", "{2,time}" within a message),
47      * or <code>null</code> if none.
48      * @param locale the Locale in which to do the lookup
49      * @param defaultMessage String to return if the lookup fails
50      * @return the resolved message if the lookup was successful;
51      * otherwise the default message passed as a parameter
52      * @see java.text.MessageFormat
53      */

54     String JavaDoc getMessage(String JavaDoc code, Object JavaDoc[] args, String JavaDoc defaultMessage, Locale JavaDoc locale);
55
56     /**
57      * Try to resolve the message. Treat as an error if the message can't be found.
58      * @param code the code to lookup up, such as 'calculator.noRateSet'
59      * @param args Array of arguments that will be filled in for params within
60      * the message (params look like "{0}", "{1,date}", "{2,time}" within a message),
61      * or <code>null</code> if none.
62      * @param locale the Locale in which to do the lookup
63      * @return the resolved message
64      * @throws NoSuchMessageException if the message wasn't found
65      * @see java.text.MessageFormat
66      */

67     String JavaDoc getMessage(String JavaDoc code, Object JavaDoc[] args, Locale JavaDoc locale) throws NoSuchMessageException;
68
69     /**
70      * Try to resolve the message using all the attributes contained within the
71      * <code>MessageSourceResolvable</code> argument that was passed in.
72      * <p>NOTE: We must throw a <code>NoSuchMessageException</code> on this method
73      * since at the time of calling this method we aren't able to determine if the
74      * <code>defaultMessage</code> property of the resolvable is null or not.
75      * @param resolvable value object storing attributes required to properly resolve a message
76      * @param locale the Locale in which to do the lookup
77      * @return the resolved message
78      * @throws NoSuchMessageException if the message wasn't found
79      * @see java.text.MessageFormat
80      */

81     String JavaDoc getMessage(MessageSourceResolvable resolvable, Locale JavaDoc locale) throws NoSuchMessageException;
82
83 }
84
Popular Tags