icu::message2::data_model::Key Class Reference

The `Key` class corresponds to the `key` nonterminal in the MessageFormat 2 grammar, https://github.com/unicode-org/message-format-wg/blob/main/spec/message.abnf . More...

`#include <messageformat2_data_model.h>`

Inheritance diagram for icu::message2::data_model::Key:

## Public Member Functions

UBool | isWildcard () const
| Determines if this is a wildcard key. More...
const Literal & | asLiteral () const
| Returns the contents of this key as a literal. More...
| Key (const Key &other)
| Copy constructor. More...
| Key ()
| Wildcard constructor; constructs a Key representing the catchall or wildcard key, '*'. More...
| Key (const Literal &lit)
| Literal key constructor. More...
Key & | operator= (Key) noexcept
| Assignment operator. More...
bool | operator< (const Key &other) const
| Less than operator. More...
bool | operator== (const Key &other) const
| Equality operator. More...
virtual | ~Key ()
| 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

void | swap (Key &k1, Key &k2) noexcept
| Non-member swap function. More...

## Detailed Description

The `Key` class corresponds to the `key` nonterminal in the MessageFormat 2 grammar, https://github.com/unicode-org/message-format-wg/blob/main/spec/message.abnf .

It also corresponds to the `Literal | CatchallKey` that is the element type of the `keys` array in the `Variant` interface defined in https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model.md#messages

A key is either a literal or the wildcard symbol (represented in messages as '*')

`Key` is immutable, copyable and movable.

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

Deprecated:
  This API is for technology preview only.

Definition at line 544 of file messageformat2_data_model.h.

## Constructor & Destructor Documentation

## Key() [1/3]

icu::message2::data_model::Key::Key | ( | const Key & | other | ) |

inline

Copy constructor.

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

Deprecated:
  This API is for technology preview only.

Definition at line 571 of file messageformat2_data_model.h.

## Key() [2/3]

icu::message2::data_model::Key::Key | ( |  | ) |

inline

Wildcard constructor; constructs a Key representing the catchall or wildcard key, '*'.

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

Deprecated:
  This API is for technology preview only.

Definition at line 579 of file messageformat2_data_model.h.

## Key() [3/3]

icu::message2::data_model::Key::Key | ( | const Literal & | lit | ) |

inlineexplicit

Literal key constructor.

Parameters

  lit | A Literal to use for this key. The result matches the literal `lit`.

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

Deprecated:
  This API is for technology preview only.

Definition at line 589 of file messageformat2_data_model.h.

## ~Key()

virtual icu::message2::data_model::Key::~Key | ( |  | ) |

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

## asLiteral()

const Literal& icu::message2::data_model::Key::asLiteral | ( |  | ) | const

Returns the contents of this key as a literal.

Precondition: !isWildcard()

Returns
  The literal contents of the key

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

Deprecated:
  This API is for technology preview only.

## isWildcard()

UBool icu::message2::data_model::Key::isWildcard | ( |  | ) | const

inline

Determines if this is a wildcard key.

Returns
  True if and only if this is the wildcard key

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

Deprecated:
  This API is for technology preview only.

Definition at line 554 of file messageformat2_data_model.h.

## operator<()

bool icu::message2::data_model::Key::operator< | ( | const Key & | other | ) | const

Less than operator.

Compares the literal of `this` with the literal of `other`. This method is used in representing the mapping from key lists to patterns in a message with variants, and is not expected to be useful otherwise.

Parameters

  other | The Key to compare to this one.

Returns
  true if the two `Key`s are not wildcards and if `this.asLiteral()` < `other.asLiteral()`. Returns false otherwise.

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

Deprecated:
  This API is for technology preview only.

## operator=()

Key& icu::message2::data_model::Key::operator= | ( | Key |  | ) |

noexcept

Assignment operator.

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

Deprecated:
  This API is for technology preview only.

## operator==()

bool icu::message2::data_model::Key::operator== | ( | const Key & | other | ) | const

Equality operator.

Compares the literal of `this` with the literal of `other`. This method is used in representing the mapping from key lists to patterns in a message with variants, and is not expected to be useful otherwise.

Parameters

  other | The Key to compare to this one.

Returns
  true if either both `Key`s are wildcards, or `this.asLiteral()` == `other.asLiteral()`. Returns false otherwise.

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

Deprecated:
  This API is for technology preview only.

## Friends And Related Function Documentation

## swap

void swap | ( | Key & | k1,
|  | Key & | k2
| ) |  |

friend

Non-member swap function.

Parameters

  k1 | will get k2's contents
  k2 | will get k1's contents

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

Deprecated:
  This API is for technology preview only.

Definition at line 598 of file messageformat2_data_model.h.

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

- i18n/unicode/messageformat2_data_model.h