ICU 77.1  77.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Friends
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:
icu::UObject icu::UMemory

Public Member Functions

UBool isWildcard () const
 Determines if this is a wildcard key. More...
 
const LiteralasLiteral () 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...
 
Keyoperator= (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 387 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 414 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 422 of file messageformat2_data_model.h.

◆ Key() [3/3]

icu::message2::data_model::Key::Key ( const Literal lit)
inlineexplicit

Literal key constructor.

Parameters
litA 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 432 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 397 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
otherThe Key to compare to this one.
Returns
true if the two Keys 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
otherThe Key to compare to this one.
Returns
true if either both Keys 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
k1will get k2's contents
k2will 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 441 of file messageformat2_data_model.h.


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