Package freemarker.core
Class AliasTemplateNumberFormatFactory
java.lang.Object
freemarker.core.TemplateValueFormatFactory
freemarker.core.TemplateNumberFormatFactory
freemarker.core.AliasTemplateNumberFormatFactory
Creates an alias to another format, so that the format can be referred to with a simple name in the template, rather
than as a concrete pattern or other kind of format string.
- Since:
- 2.3.24
-
Constructor Summary
ConstructorsConstructorDescriptionAliasTemplateNumberFormatFactory(String targetFormatString)AliasTemplateNumberFormatFactory(String defaultTargetFormatString, Map<Locale,String> localizedTargetFormatStrings) -
Method Summary
Modifier and TypeMethodDescriptionget(String params, Locale locale, Environment env)Returns a formatter for the given parameters.
-
Constructor Details
-
AliasTemplateNumberFormatFactory
- Parameters:
targetFormatString- The format string this format will be an alias to
-
AliasTemplateNumberFormatFactory
public AliasTemplateNumberFormatFactory(String defaultTargetFormatString, Map<Locale,String> localizedTargetFormatStrings)- Parameters:
defaultTargetFormatString- The format string this format will be an alias to if there's no locale-specific format string for the requested locale inlocalizedTargetFormatStringslocalizedTargetFormatStrings- MapsLocale-s to format strings. If the desired locale doesn't occur in the map, a less specific locale is tried, repeatedly until only the language part remains. For example, if locale isnew Locale("en", "US", "Linux"), then these keys will be attempted untol a match is found, in this order:new Locale("en", "US", "Linux"),new Locale("en", "US"),new Locale("en"). If there's still no matching key, the value of thetargetFormatStringwill be used.
-
-
Method Details
-
get
public TemplateNumberFormat get(String params, Locale locale, Environment env) throws TemplateValueFormatExceptionDescription copied from class:TemplateNumberFormatFactoryReturns a formatter for the given parameters.The returned formatter can be a new instance or a reused (cached) instance. Note that
Environmentitself caches the returned instances, though that cache is lost with theEnvironment(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.- Specified by:
getin classTemplateNumberFormatFactory- Parameters:
params- The string that further describes how the format should look. For example, when thenumberFormatis"@fooBar 1, 2", then it will be"1, 2"(and"@fooBar"selects the factory). The format of this string is up to theTemplateNumberFormatFactoryimplementation. Notnull, often an empty string.locale- The locale to format for. Notnull. The resulting format must be bound to this locale forever (i.e. locale changes in theEnvironmentmust not be followed).env- The runtime environment from which the formatting was called. This is mostly meant to be used forEnvironment.setCustomState(Object, Object)/Environment.getCustomState(Object).- Throws:
TemplateValueFormatException- if any problem occurs while parsing/getting the format. Notable subclasses:InvalidFormatParametersExceptionif theparamsis malformed.
-