Java Doc for AbstractMessageSource.java in  » J2EE » spring-framework-2.0.6 » org » springframework » context » support » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » J2EE » spring framework 2.0.6 » org.springframework.context.support 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.springframework.context.support.AbstractMessageSource

All known Subclasses:   org.springframework.context.support.StaticMessageSource,  org.springframework.context.support.ResourceBundleMessageSource,  org.springframework.context.support.ReloadableResourceBundleMessageSource,
AbstractMessageSource
abstract public class AbstractMessageSource implements HierarchicalMessageSource(Code)
Abstract implementation of the HierarchicalMessageSource interface, implementing common handling of message variants, making it easy to implement a specific strategy for a concrete MessageSource.

Subclasses must implement the abstract resolveCode method. For efficient resolution of messages without arguments, the resolveCodeWithoutArguments method should be overridden as well, resolving messages without a MessageFormat being involved.

Note: By default, message texts are only parsed through MessageFormat if arguments have been passed in for the message. In case of no arguments, message texts will be returned as-is. As a consequence, you should only use MessageFormat escaping for messages with actual arguments, and keep all other messages unescaped. If you prefer to escape all messages, set the "alwaysUseMessageFormat" flag to "true".

Supports not only MessageSourceResolvables as primary messages but also resolution of message arguments that are in turn MessageSourceResolvables themselves.

This class does not implement caching of messages per code, thus subclasses can dynamically change messages over time. Subclasses are encouraged to cache their messages in a modification-aware fashion, allowing for hot deployment of updated messages.
author:
   Juergen Hoeller
author:
   Rod Johnson
See Also:   AbstractMessageSource.resolveCode(String,java.util.Locale)
See Also:   AbstractMessageSource.resolveCodeWithoutArguments(String,java.util.Locale)
See Also:   AbstractMessageSource.setAlwaysUseMessageFormat
See Also:   java.text.MessageFormat



Field Summary
final protected  Loglogger
    


Method Summary
protected  MessageFormatcreateMessageFormat(String msg, Locale locale)
     Create a MessageFormat for the given message and Locale.
protected  StringformatMessage(String msg, Object[] args, Locale locale)
     Format the given message String, using cached MessageFormats.
protected  StringgetDefaultMessage(String code)
     Return a fallback default message for the given code, if any.

Default is to return the code itself if "useCodeAsDefaultMessage" is activated, or return no fallback else.

final public  StringgetMessage(String code, Object[] args, String defaultMessage, Locale locale)
    
final public  StringgetMessage(String code, Object[] args, Locale locale)
    
final public  StringgetMessage(MessageSourceResolvable resolvable, Locale locale)
    
protected  StringgetMessageFromParent(String code, Object[] args, Locale locale)
     Try to retrieve the given message from the parent MessageSource, if any.
protected  StringgetMessageInternal(String code, Object[] args, Locale locale)
     Resolve the given code and arguments as message in the given Locale, returning null if not found.
public  MessageSourcegetParentMessageSource()
    
protected  booleanisAlwaysUseMessageFormat()
     Return whether to always apply the MessageFormat rules, parsing even messages without arguments.
protected  booleanisUseCodeAsDefaultMessage()
     Return whether to use the message code as default message instead of throwing a NoSuchMessageException.
protected  StringrenderDefaultMessage(String defaultMessage, Object[] args, Locale locale)
     Render the given default message String.
protected  Object[]resolveArguments(Object[] args, Locale locale)
     Search through the given array of objects, find any MessageSourceResolvable objects and resolve them.
abstract protected  MessageFormatresolveCode(String code, Locale locale)
     Subclasses must implement this method to resolve a message.
protected  StringresolveCodeWithoutArguments(String code, Locale locale)
     Subclasses can override this method to resolve a message without arguments in an optimized fashion, that is, to resolve a message without involving a MessageFormat.

The default implementation does use MessageFormat, through delegating to the resolveCode method. Subclasses are encouraged to replace this with optimized resolution.

Unfortunately, java.text.MessageFormat is not implemented in an efficient fashion.

public  voidsetAlwaysUseMessageFormat(boolean alwaysUseMessageFormat)
     Set whether to always apply the MessageFormat rules, parsing even messages without arguments.

Default is "false": Messages without arguments are by default returned as-is, without parsing them through MessageFormat. Set this to "true" to enforce MessageFormat for all messages, expecting all message texts to be written with MessageFormat escaping.

For example, MessageFormat expects a single quote to be escaped as "''".

public  voidsetParentMessageSource(MessageSource parent)
    
public  voidsetUseCodeAsDefaultMessage(boolean useCodeAsDefaultMessage)
     Set whether to use the message code as default message instead of throwing a NoSuchMessageException.

Field Detail
logger
final protected Log logger(Code)
Logger available to subclasses





Method Detail
createMessageFormat
protected MessageFormat createMessageFormat(String msg, Locale locale)(Code)
Create a MessageFormat for the given message and Locale.

This implementation creates an empty MessageFormat first, populating it with Locale and pattern afterwards, to stay compatible with J2SE 1.3.
Parameters:
  msg - the message to create a MessageFormat for
Parameters:
  locale - the Locale to create a MessageFormat for the MessageFormat instance




formatMessage
protected String formatMessage(String msg, Object[] args, Locale locale)(Code)
Format the given message String, using cached MessageFormats. By default invoked for passed-in default messages, to resolve any argument placeholders found in them.
Parameters:
  msg - the message to format
Parameters:
  args - array of arguments that will be filled in for params withinthe message, or null if none.
Parameters:
  locale - the Locale used for formatting the formatted message (with resolved arguments)



getDefaultMessage
protected String getDefaultMessage(String code)(Code)
Return a fallback default message for the given code, if any.

Default is to return the code itself if "useCodeAsDefaultMessage" is activated, or return no fallback else. In case of no fallback, the caller will usually receive a NoSuchMessageException from getMessage.
Parameters:
  code - the message code that we couldn't resolveand that we didn't receive an explicit default message for the default message to use, or null if none
See Also:   AbstractMessageSource.setUseCodeAsDefaultMessage




getMessage
final public String getMessage(String code, Object[] args, String defaultMessage, Locale locale)(Code)



getMessage
final public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException(Code)



getMessage
final public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException(Code)



getMessageFromParent
protected String getMessageFromParent(String code, Object[] args, Locale locale)(Code)
Try to retrieve the given message from the parent MessageSource, if any.
Parameters:
  code - the code to lookup up, such as 'calculator.noRateSet'
Parameters:
  args - array of arguments that will be filled in for paramswithin the message
Parameters:
  locale - the Locale in which to do the lookup the resolved message, or null if not found
See Also:   AbstractMessageSource.getParentMessageSource()



getMessageInternal
protected String getMessageInternal(String code, Object[] args, Locale locale)(Code)
Resolve the given code and arguments as message in the given Locale, returning null if not found. Does not fall back to the code as default message. Invoked by getMessage methods.
Parameters:
  code - the code to lookup up, such as 'calculator.noRateSet'
Parameters:
  args - array of arguments that will be filled in for paramswithin the message
Parameters:
  locale - the Locale in which to do the lookup the resolved message, or null if not found
See Also:   AbstractMessageSource.getMessage(String,Object[],String,Locale)
See Also:   AbstractMessageSource.getMessage(String,Object[],Locale)
See Also:   AbstractMessageSource.getMessage(MessageSourceResolvable,Locale)
See Also:   AbstractMessageSource.setUseCodeAsDefaultMessage



getParentMessageSource
public MessageSource getParentMessageSource()(Code)



isAlwaysUseMessageFormat
protected boolean isAlwaysUseMessageFormat()(Code)
Return whether to always apply the MessageFormat rules, parsing even messages without arguments.



isUseCodeAsDefaultMessage
protected boolean isUseCodeAsDefaultMessage()(Code)
Return whether to use the message code as default message instead of throwing a NoSuchMessageException. Useful for development and debugging. Default is "false".

Alternatively, consider overriding the getDefaultMessage method to return a custom fallback message for an unresolvable code.
See Also:   AbstractMessageSource.getDefaultMessage(String)




renderDefaultMessage
protected String renderDefaultMessage(String defaultMessage, Object[] args, Locale locale)(Code)
Render the given default message String. The default message is passed in as specified by the caller and can be rendered into a fully formatted default message shown to the user.

Default implementation passes the String to formatMessage, resolving any argument placeholders found in them. Subclasses may override this method to plug in custom processing of default messages.
Parameters:
  defaultMessage - the passed-in default message String
Parameters:
  args - array of arguments that will be filled in for params withinthe message, or null if none.
Parameters:
  locale - the Locale used for formatting the rendered default message (with resolved arguments)
See Also:   AbstractMessageSource.formatMessage(String,Object[],java.util.Locale)




resolveArguments
protected Object[] resolveArguments(Object[] args, Locale locale)(Code)
Search through the given array of objects, find any MessageSourceResolvable objects and resolve them.

Allows for messages to have MessageSourceResolvables as arguments.
Parameters:
  args - array of arguments for a message
Parameters:
  locale - the locale to resolve through an array of arguments with any MessageSourceResolvables resolved




resolveCode
abstract protected MessageFormat resolveCode(String code, Locale locale)(Code)
Subclasses must implement this method to resolve a message.

Returns a MessageFormat instance rather than a message String, to allow for appropriate caching of MessageFormats in subclasses.

Subclasses are encouraged to provide optimized resolution for messages without arguments, not involving MessageFormat. See resolveCodeWithoutArguments javadoc for details.
Parameters:
  code - the code of the message to resolve
Parameters:
  locale - the Locale to resolve the code for(subclasses are encouraged to support internationalization) the MessageFormat for the message, or null if not found
See Also:   AbstractMessageSource.resolveCodeWithoutArguments(String,java.util.Locale)




resolveCodeWithoutArguments
protected String resolveCodeWithoutArguments(String code, Locale locale)(Code)
Subclasses can override this method to resolve a message without arguments in an optimized fashion, that is, to resolve a message without involving a MessageFormat.

The default implementation does use MessageFormat, through delegating to the resolveCode method. Subclasses are encouraged to replace this with optimized resolution.

Unfortunately, java.text.MessageFormat is not implemented in an efficient fashion. In particular, it does not detect that a message pattern doesn't contain argument placeholders in the first place. Therefore, it's advisable to circumvent MessageFormat completely for messages without arguments.
Parameters:
  code - the code of the message to resolve
Parameters:
  locale - the Locale to resolve the code for(subclasses are encouraged to support internationalization) the message String, or null if not found
See Also:   AbstractMessageSource.resolveCode
See Also:   java.text.MessageFormat




setAlwaysUseMessageFormat
public void setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat)(Code)
Set whether to always apply the MessageFormat rules, parsing even messages without arguments.

Default is "false": Messages without arguments are by default returned as-is, without parsing them through MessageFormat. Set this to "true" to enforce MessageFormat for all messages, expecting all message texts to be written with MessageFormat escaping.

For example, MessageFormat expects a single quote to be escaped as "''". If your message texts are all written with such escaping, even when not defining argument placeholders, you need to set this flag to "true". Else, only message texts with actual arguments are supposed to be written with MessageFormat escaping.
See Also:   java.text.MessageFormat




setParentMessageSource
public void setParentMessageSource(MessageSource parent)(Code)



setUseCodeAsDefaultMessage
public void setUseCodeAsDefaultMessage(boolean useCodeAsDefaultMessage)(Code)
Set whether to use the message code as default message instead of throwing a NoSuchMessageException. Useful for development and debugging. Default is "false".

Note: In case of a MessageSourceResolvable with multiple codes (like a FieldError) and a MessageSource that has a parent MessageSource, do not activate "useCodeAsDefaultMessage" in the parent: Else, you'll get the first code returned as message by the parent, without attempts to check further codes.

To be able to work with "useCodeAsDefaultMessage" turned on in the parent, AbstractMessageSource and AbstractApplicationContext contain special checks to delegate to the internal getMessageInternal method if available. In general, it is recommended to just use "useCodeAsDefaultMessage" during development and not rely on it in production in the first place, though.
See Also:   AbstractMessageSource.getMessage(String,Object[],Locale)
See Also:   AbstractMessageSource.getMessageInternal
See Also:   org.springframework.validation.FieldError




Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.