- All Implemented Interfaces:
- StringTemplate.ProcessorPREVIEW<String,,- RuntimeException> - StringTemplate.Processor.LinkagePREVIEW
FormatProcessor is a preview API of the Java platform.
StringTemplate.ProcessorPREVIEW constructs a String result using
 Formatter specifications and values found in the StringTemplatePREVIEW.
 Unlike Formatter, FormatProcessorPREVIEW uses the value from the
 embedded expression that immediately follows, without whitespace, the
 format specifier.
 For example:
 
FormatProcessor fmt = FormatProcessor.create(Locale.ROOT);
int x = 10;
int y = 20;
String result = fmt."%05d\{x} + %05d\{y} = %05d\{x + y}";
result will be "00010 + 00020 = 00030".
 
 Embedded expressions without a preceeding format specifier, use %s
 by default.
 
FormatProcessor fmt = FormatProcessor.create(Locale.ROOT);
int x = 10;
int y = 20;
String result1 = fmt."\{x} + \{y} = \{x + y}";
String result2 = fmt."%s\{x} + %s\{y} = %s\{x + y}";
result1 and result2 will
 both be "10 + 20 = 30".
 
 The FormatProcessorPREVIEW format specification used and exceptions thrown are the
 same as those of Formatter.
 
 However, there are two significant differences related to the position of arguments.
 An explict n$ and relative < index will cause an exception due to
 a missing argument list.
 Whitespace appearing between the specification and the embedded expression will
 also cause an exception.
 
 FormatProcessorPREVIEW allows the use of different locales. For example:
 
Locale locale = Locale.forLanguageTag("th-TH-u-nu-thai");
FormatProcessor thaiFMT = FormatProcessor.create(locale);
int x = 10;
int y = 20;
String result = thaiFMT."%4d\{x} + %4d\{y} = %5d\{x + y}";
result will be
 "  ๑๐ +   ๒๐ =    ๓๐".
 
 For day to day use, the predefined FMT FormatProcessorPREVIEW
 is available. FMT is defined using the Locale.ROOT.
 Example: 
int x = 10;
int y = 20;
String result = FMT."0x%04x\{x} + 0x%04x\{y} = 0x%04x\{x + y}";
result will be "0x000a + 0x0014 = 0x001E".- Since:
- 21
- See Also:
- 
Nested Class SummaryNested classes/interfaces declared in interface java.lang.StringTemplate.ProcessorPREVIEWStringTemplate.Processor.LinkagePREVIEW
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final FormatProcessorPREVIEWThis predefinedFormatProcessorPREVIEW instance constructs aStringresult using the Locale.ROOTLocale.
- 
Method SummaryModifier and TypeMethodDescriptionstatic FormatProcessorPREVIEWCreate a newFormatProcessorPREVIEW using the specified locale.linkage(List<String> fragments, MethodType type) Constructs aMethodHandlethat when supplied with the values from aStringTemplatePREVIEW will produce a result equivalent to that provided byprocess(StringTemplate).final Stringprocess(StringTemplatePREVIEW stringTemplate) Constructs aStringbased on the fragments, format specifications found in the fragments and values in the suppliedStringTemplatePREVIEW object.
- 
Field Details- 
FMTThis predefinedFormatProcessorPREVIEW instance constructs aStringresult using the Locale.ROOTLocale. SeeFormatProcessorPREVIEW for more details. Example:In the above example, the value ofint x = 10; int y = 20; String result = FMT."0x%04x\{x} + 0x%04x\{y} = 0x%04x\{x + y}";resultwill be"0x000a + 0x0014 = 0x001E".- See Also:
 
 
- 
- 
Method Details- 
createCreate a newFormatProcessorPREVIEW using the specified locale.- Parameters:
- locale-- Localeused to format
- Returns:
- a new instance of FormatProcessorPREVIEW
- Throws:
- NullPointerException- if locale is null
 
- 
processConstructs aStringbased on the fragments, format specifications found in the fragments and values in the suppliedStringTemplatePREVIEW object. This method constructs a format string from the fragments, gathers up the values and evaluates the expression asif evaulatingnew Formatter(locale).format(format, values).toString().If an embedded expression is not immediately preceded by a specifier then a %sis inserted in the format.- Specified by:
- processin interface- StringTemplate.ProcessorPREVIEW<String,- RuntimeException> 
- Parameters:
- stringTemplate- a- StringTemplatePREVIEW instance
- Returns:
- constructed String
- Throws:
- IllegalFormatException- If a format specifier contains an illegal syntax, a format specifier that is incompatible with the given arguments, a specifier not followed immediately by an embedded expression or other illegal conditions. For specification of all possible formatting errors, see the details section of the formatter class specification.
- NullPointerException- if stringTemplate is null
- See Also:
 
- 
linkageConstructs aMethodHandlethat when supplied with the values from aStringTemplatePREVIEW will produce a result equivalent to that provided byprocess(StringTemplate). ThisMethodHandleis used byFMTand the ilk to perform a more specialized composition of a result. This specialization is done by prescanning the fragments and value types of aStringTemplatePREVIEW.Process template expressions can be specialized when the processor is of type StringTemplate.Processor.LinkagePREVIEW and fetched from a static constant as isFMT(static final FormatProcessor).Other FormatProcessorsPREVIEW can be specialized when stored in a static final. For example:FormatProcessor THAI_FMT = FormatProcessor.create(Locale.forLanguageTag("th-TH-u-nu-thai"));THAI_FMTwill now produce specializedMethodHandlesby way oflinkage(List, MethodType). Seeprocess(StringTemplate)for more information.- Specified by:
- linkagein interface- StringTemplate.Processor.LinkagePREVIEW
- Parameters:
- fragments- string template fragments
- type- method type, includes the StringTemplate receiver as well as the value types
- Returns:
- MethodHandlefor the processor applied to template
- Throws:
- IllegalFormatException- If a format specifier contains an illegal syntax, a format specifier that is incompatible with the given arguments, a specifier not followed immediately by an embedded expression or other illegal conditions. For specification of all possible formatting errors, see the details section of the formatter class specification.
- NullPointerException- if fragments or type is null
- See Also:
 
 
- 
FormatProcessorwhen preview features are enabled.