ICU 78.3: icu::message2::MessageFormatter::Builder Class Reference

ICU 78.3 78.3

Public Member Functions | Friends
icu::message2::MessageFormatter::Builder Class Reference

The mutable Builder class allows each part of the MessageFormatter to be initialized separately; calling its `build()` method yields an immutable MessageFormatter. More...

`#include <messageformat2.h>`

Inheritance diagram for icu::message2::MessageFormatter::Builder:

## Public Member Functions
U_I18N_API Builder & | setLocale (const Locale &locale)
| Sets the locale to use for formatting. More...
U_I18N_API Builder & | setPattern (const UnicodeString &pattern, UParseError &parseError, UErrorCode &status)
| Sets the pattern (contents of the message) and parses it into a data model. More...
U_I18N_API Builder & | setFunctionRegistry (const MFFunctionRegistry &functionRegistry)
| Sets a custom function registry. More...
U_I18N_API Builder & | setDataModel (MFDataModel &&dataModel)
| Sets a data model. More...
U_I18N_API Builder & | setErrorHandlingBehavior (UMFErrorHandlingBehavior type)
| Set the error handling behavior for this formatter. More...
U_I18N_API MessageFormatter | build (UErrorCode &status) const
| Constructs a new immutable MessageFormatter using the pattern or data model that was previously set, and the locale (if it was previously set) or default locale (otherwise). More...
U_I18N_API | Builder (UErrorCode &status)
| Default constructor. More...
virtual U_I18N_API | ~Builder ()
| Destructor. More...
Public Member Functions inherited from icu::UObject
virtual | ~UObject ()
| Destructor. More...
virtual UClassID | getDynamicClassID () const
| ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. More...

## Friends
class | MessageFormatter

## Detailed Description

The mutable Builder class allows each part of the MessageFormatter to be initialized separately; calling its `build()` method yields an immutable MessageFormatter.

Not copyable or movable.

Definition at line 176 of file messageformat2.h.

## Constructor & Destructor Documentation

## ◆ Builder()

U_I18N_API icu::message2::MessageFormatter::Builder::Builder | ( | UErrorCode & | status | ) |

Default constructor.

Returns a Builder with the default locale and with no data model or pattern set. Either `setPattern()` or `setDataModel()` has to be called before calling `build()`.

Parameters

  status | Input/output error code.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ ~Builder()

virtual U_I18N_API icu::message2::MessageFormatter::Builder::~Builder | ( |  | ) |
| virtual

Destructor.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## Member Function Documentation

## ◆ build()

U_I18N_API MessageFormatter icu::message2::MessageFormatter::Builder::build | ( | UErrorCode & | status | ) | const

Constructs a new immutable MessageFormatter using the pattern or data model that was previously set, and the locale (if it was previously set) or default locale (otherwise).

The builder object (`this`) can still be used after calling `build()`.

Parameters

  status | Input/output error code. If neither the pattern nor the data model is set, set to failure code.

Returns
  The new MessageFormatter object

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ setDataModel()

U_I18N_API Builder& icu::message2::MessageFormatter::Builder::setDataModel | ( | MFDataModel && | dataModel | ) |

Sets a data model.

If a pattern was previously set, it is removed.

Parameters

  dataModel | Data model to format. Passed by move.

Returns
  A reference to the builder.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ setErrorHandlingBehavior()

U_I18N_API Builder& icu::message2::MessageFormatter::Builder::setErrorHandlingBehavior | ( | UMFErrorHandlingBehavior | type | ) |

Set the error handling behavior for this formatter.

"Strict" error behavior means that that formatting methods will set their UErrorCode arguments to signal MessageFormat data model, resolution, and runtime errors. Syntax errors are always signaled.

"Best effort" error behavior means that MessageFormat errors are suppressed: formatting methods will not set their UErrorCode arguments to signal MessageFormat data model, resolution, or runtime errors. Best-effort output will be returned. Syntax errors are always signaled. This is the default behavior.

Parameters

  type | An enum with type UMFErrorHandlingBehavior; if type == `U_MF_STRICT`, then errors are handled strictly. If type == `U_MF_BEST_EFFORT`, then best-effort output is returned.

The default is to suppress all MessageFormat errors and return best-effort output.

Returns
  A reference to the builder.

Internal:
  Do not use. This API is for internal use only. ICU 76 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ setFunctionRegistry()

U_I18N_API Builder& icu::message2::MessageFormatter::Builder::setFunctionRegistry | ( | const MFFunctionRegistry & | functionRegistry | ) |

Sets a custom function registry.

Parameters

  functionRegistry | Reference to the function registry to use. `functionRegistry` is not copied, and the caller must ensure its lifetime contains the lifetime of the `MessageFormatter` object built by this builder.

Returns
  A reference to the builder.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ setLocale()

U_I18N_API Builder& icu::message2::MessageFormatter::Builder::setLocale | ( | const Locale & | locale | ) |

Sets the locale to use for formatting.

Parameters

  locale | The desired locale.

Returns
  A reference to the builder.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

## ◆ setPattern()

U_I18N_API Builder& icu::message2::MessageFormatter::Builder::setPattern | ( | const UnicodeString & | pattern,
|  | UParseError & | parseError,
|  | UErrorCode & | status
| ) |  |

Sets the pattern (contents of the message) and parses it into a data model.

If a data model was previously set, it is removed.

Parameters

  pattern | A string in MessageFormat 2.0 syntax.
  parseError | Struct to receive information on the position of an error within the pattern.
  status | Input/output error code. If the pattern cannot be parsed, set to failure code.

Returns
  A reference to the builder.

Internal:
  Do not use. This API is for internal use only. ICU 75 technology preview

Deprecated:
  This API is for technology preview only.

The documentation for this class was generated from the following file:

- i18n/unicode/messageformat2.h