Package yakworks.i18n.icu
Class DefaultICUMessageSource
- java.lang.Object
-
- org.springframework.context.support.MessageSourceSupport
-
- org.springframework.context.support.AbstractMessageSource
-
- org.springframework.context.support.AbstractResourceBasedMessageSource
-
- org.springframework.context.support.ReloadableResourceBundleMessageSource
-
- yakworks.i18n.icu.ICUBundleMessageSource
-
- yakworks.i18n.icu.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 fromMessageSourceSupportandAbstractMessageSource- Since:
- 0.3.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class yakworks.i18n.icu.ICUBundleMessageSource
ICUBundleMessageSource.PropertiesHolder
-
-
Field Summary
Fields Modifier and Type Field Description static com.ibm.icu.text.MessageFormatINVALID_MESSAGE_FORMAT
-
Constructor Summary
Constructors Constructor Description DefaultICUMessageSource()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.LocalecheckLocale(java.util.Locale locale)checks if local is null and returns the LocaleContextHolder.getLocale() is soprotected java.lang.StringformatMessage(java.lang.String msg, java.lang.Object[] args, java.util.Locale locale)protected java.util.LocalegetDefaultLocale()java.util.LocalegetHolderLocale()Get the locale from the LocaleContextHolderjava.lang.StringgetMessage(java.lang.String code, yakworks.message.MsgContext msgCtx)Default icu and mapped based methodprotected java.lang.StringgetMessageInternal(java.lang.String code, java.lang.Object[] args, java.util.Locale locale)protected java.lang.StringgetMessageInternal(java.lang.String code, yakworks.message.MsgContext msgCtx)java.lang.Stringinterpolate(java.lang.String msg, yakworks.message.MsgContext msgCtx)protected java.lang.StringrenderDefaultMessage(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.MsgContextresolveArguments(yakworks.message.MsgContext msgCtx)transforms messsage args doing interpolation formatting on each one if it implements the MessageSourceResolvable-
Methods inherited from class yakworks.i18n.icu.ICUBundleMessageSource
calculateAllFilenames, clearCache, createMessageFormat, createMessageFormatICU, getMergedProperties, getProperties, loadProperties, mergeExternalProperties, mergePluginProperties, refreshPropertiesICU, resolveCode, resolveCodeICU
-
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 yakworks.i18n.icu.ICUMessageSource
getMessage
-
-
-
-
Method Detail
-
getMessage
public java.lang.String getMessage(java.lang.String code, yakworks.message.MsgContext msgCtx)Default icu and mapped based method- Specified by:
getMessagein interfaceyakworks.message.spi.MsgService
-
renderDefaultMessage
protected java.lang.String renderDefaultMessage(java.lang.String defaultMessage, @Nullable java.lang.Object[] args, java.util.Locale locale)- Overrides:
renderDefaultMessagein classorg.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
-
getHolderLocale
public java.util.Locale getHolderLocale()
Description copied from interface:ICUMessageSourceGet the locale from the LocaleContextHolder- Specified by:
getHolderLocalein interfaceICUMessageSource
-
getDefaultLocale
@Nullable protected java.util.Locale getDefaultLocale()
- Overrides:
getDefaultLocalein classorg.springframework.context.support.AbstractResourceBasedMessageSource
-
interpolate
public java.lang.String interpolate(java.lang.String msg, yakworks.message.MsgContext msgCtx)- Specified by:
interpolatein interfaceyakworks.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:
getMessageInternalin classorg.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:
formatMessagein classorg.springframework.context.support.MessageSourceSupport
-
resolveArguments
protected java.lang.Object[] resolveArguments(@Nullable java.lang.Object[] args, java.util.Locale locale)- Overrides:
resolveArgumentsin classorg.springframework.context.support.AbstractMessageSource
-
-