public abstract class TemplateNumberFormatFactory extends TemplateValueFormatFactory
TemplateNumberFormat
). Usually a singleton (one-per-VM or
one-per-Configuration
), and so must be thread-safe.Configurable.setCustomNumberFormats(java.util.Map)
Constructor and Description |
---|
TemplateNumberFormatFactory() |
Modifier and Type | Method and Description |
---|---|
abstract TemplateNumberFormat |
get(java.lang.String params,
java.util.Locale locale,
Environment env)
Returns a formatter for the given parameters.
|
public abstract TemplateNumberFormat get(java.lang.String params, java.util.Locale locale, Environment env) throws TemplateValueFormatException
The returned formatter can be a new instance or a reused (cached) instance. Note that Environment
itself
caches the returned instances, though that cache is lost with the Environment
(i.e., when the top-level
template execution ends), also it might flushes lot of entries if the locale or time zone is changed during
template execution. So caching on the factory level is still useful, unless creating the formatters is
sufficiently cheap.
params
- The string that further describes how the format should look. For example, when the
numberFormat
is "@fooBar 1, 2"
, then it will be
"1, 2"
(and "@fooBar"
selects the factory). The format of this string is up to the
TemplateNumberFormatFactory
implementation. Not null
, often an empty string.locale
- The locale to format for. Not null
. The resulting format must be bound to this locale
forever (i.e. locale changes in the Environment
must not be followed).env
- The runtime environment from which the formatting was called. This is mostly meant to be used for
Environment.setCustomState(Object, Object)
/Environment.getCustomState(Object)
.TemplateValueFormatException
- if any problem occurs while parsing/getting the format. Notable subclasses:
InvalidFormatParametersException
if the params
is malformed.