Class DefaultICUMessageSource

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.context.HierarchicalMessageSource, org.springframework.context.MessageSource, org.springframework.context.ResourceLoaderAware, ICUMessageSource, yakworks.message.spi.MsgService

    public class DefaultICUMessageSource
    extends ICUBundleMessageSource
    implements ICUMessageSource
    ICU4j Overrides, Lots of copy/paste from ReloadableResourceBundleMessageSource as it wasn't made to be easy to override and so much is private and final there. The core issue here is that we need to return com.ibm.icu.text.MessageFormat and NOT java.text.MessageFormat from many of the methods and so can't easily override basically overrides what we need from MessageSourceSupport and AbstractMessageSource
    Since:
    0.3.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static com.ibm.icu.text.MessageFormat INVALID_MESSAGE_FORMAT  
      • Fields inherited from class org.springframework.context.support.MessageSourceSupport

        logger
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Locale checkLocale​(java.util.Locale locale)
      checks if local is null and returns the LocaleContextHolder.getLocale() is so
      protected java.lang.String formatMessage​(java.lang.String msg, java.lang.Object[] args, java.util.Locale locale)  
      protected java.util.Locale getDefaultLocale()  
      java.util.Locale getHolderLocale()
      Get the locale from the LocaleContextHolder
      java.lang.String getMessage​(java.lang.String code, yakworks.message.MsgContext msgCtx)
      Default icu and mapped based method
      protected java.lang.String getMessageInternal​(java.lang.String code, java.lang.Object[] args, java.util.Locale locale)  
      protected java.lang.String getMessageInternal​(java.lang.String code, yakworks.message.MsgContext msgCtx)  
      java.lang.String interpolate​(java.lang.String msg, yakworks.message.MsgContext msgCtx)  
      protected java.lang.String renderDefaultMessage​(java.lang.String defaultMessage, java.lang.Object[] args, java.util.Locale locale)  
      protected java.lang.Object[] resolveArguments​(java.lang.Object[] args, java.util.Locale locale)  
      protected yakworks.message.MsgContext resolveArguments​(yakworks.message.MsgContext msgCtx)
      transforms messsage args doing interpolation formatting on each one if it implements the MessageSourceResolvable
      • Methods inherited from class org.springframework.context.support.ReloadableResourceBundleMessageSource

        calculateFilenamesForLocale, clearCacheIncludingAncestors, newProperties, refreshProperties, resolveCodeWithoutArguments, setConcurrentRefresh, setFileEncodings, setPropertiesPersister, setResourceLoader, toString
      • Methods inherited from class org.springframework.context.support.AbstractResourceBasedMessageSource

        addBasenames, getBasenameSet, getCacheMillis, getDefaultEncoding, isFallbackToSystemLocale, setBasename, setBasenames, setCacheMillis, setCacheSeconds, setDefaultEncoding, setDefaultLocale, setFallbackToSystemLocale
      • Methods inherited from class org.springframework.context.support.AbstractMessageSource

        getCommonMessages, getDefaultMessage, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getParentMessageSource, isUseCodeAsDefaultMessage, setCommonMessages, setParentMessageSource, setUseCodeAsDefaultMessage
      • Methods inherited from class org.springframework.context.support.MessageSourceSupport

        isAlwaysUseMessageFormat, setAlwaysUseMessageFormat
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.springframework.context.HierarchicalMessageSource

        getParentMessageSource, setParentMessageSource
      • Methods inherited from interface org.springframework.context.MessageSource

        getMessage, getMessage, getMessage
      • Methods inherited from interface yakworks.message.spi.MsgService

        get, get, get, get, get, get, get
    • Field Detail

      • INVALID_MESSAGE_FORMAT

        public static final com.ibm.icu.text.MessageFormat INVALID_MESSAGE_FORMAT
    • Constructor Detail

      • DefaultICUMessageSource

        public DefaultICUMessageSource()
    • Method Detail

      • getMessage

        public java.lang.String getMessage​(java.lang.String code,
                                           yakworks.message.MsgContext msgCtx)
        Default icu and mapped based method
        Specified by:
        getMessage in interface yakworks.message.spi.MsgService
      • renderDefaultMessage

        protected java.lang.String renderDefaultMessage​(java.lang.String defaultMessage,
                                                        @Nullable
                                                        java.lang.Object[] args,
                                                        java.util.Locale locale)
        Overrides:
        renderDefaultMessage in class org.springframework.context.support.MessageSourceSupport
      • checkLocale

        public java.util.Locale checkLocale​(java.util.Locale locale)
        checks if local is null and returns the LocaleContextHolder.getLocale() is so
      • getDefaultLocale

        @Nullable
        protected java.util.Locale getDefaultLocale()
        Overrides:
        getDefaultLocale in class org.springframework.context.support.AbstractResourceBasedMessageSource
      • interpolate

        public java.lang.String interpolate​(java.lang.String msg,
                                            yakworks.message.MsgContext msgCtx)
        Specified by:
        interpolate in interface yakworks.message.spi.MsgService
      • getMessageInternal

        @Nullable
        protected java.lang.String getMessageInternal​(@Nullable
                                                      java.lang.String code,
                                                      @Nullable
                                                      java.lang.Object[] args,
                                                      @Nullable
                                                      java.util.Locale locale)
        Overrides:
        getMessageInternal in class org.springframework.context.support.AbstractMessageSource
      • getMessageInternal

        @Nullable
        protected java.lang.String getMessageInternal​(@Nullable
                                                      java.lang.String code,
                                                      yakworks.message.MsgContext msgCtx)
      • resolveArguments

        protected yakworks.message.MsgContext resolveArguments​(yakworks.message.MsgContext msgCtx)
        transforms messsage args doing interpolation formatting on each one if it implements the MessageSourceResolvable
        Returns:
        a new MsgContext
      • formatMessage

        protected java.lang.String formatMessage​(java.lang.String msg,
                                                 @Nullable
                                                 java.lang.Object[] args,
                                                 java.util.Locale locale)
        Overrides:
        formatMessage in class org.springframework.context.support.MessageSourceSupport
      • resolveArguments

        protected java.lang.Object[] resolveArguments​(@Nullable
                                                      java.lang.Object[] args,
                                                      java.util.Locale locale)
        Overrides:
        resolveArguments in class org.springframework.context.support.AbstractMessageSource