ICU 78.3: icu::message2::data_model::Operand Class Reference

ICU 78.3 78.3

Public Member Functions | Friends
icu::message2::data_model::Operand Class Reference

The `Operand` class corresponds to the `operand` 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::Operand:

## Public Member Functions
U_I18N_API UBool | isVariable () const
| Determines if this operand represents a variable. More...
U_I18N_API UBool | isLiteral () const
| Determines if this operand represents a literal. More...
virtual U_I18N_API UBool | isNull () const
| Determines if this operand is the null operand. More...
U_I18N_API const UnicodeString & | asVariable () const
| Returns a reference to this operand's variable name. More...
U_I18N_API const Literal & | asLiteral () const
| Returns a reference to this operand's literal contents. More...
U_I18N_API | Operand ()
| Default constructor. More...
U_I18N_API | Operand (const UnicodeString &v)
| Variable operand constructor. More...
U_I18N_API | Operand (const Literal &l)
| Literal operand constructor. More...
virtual U_I18N_API Operand & | operator= (Operand) noexcept
| Assignment operator. More...
U_I18N_API | Operand (const Operand &)
| Copy constructor. More...
virtual U_I18N_API | ~Operand ()
| 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
U_I18N_API friend void | swap (Operand &o1, Operand &o2) noexcept
| Non-member swap function. More...

## Detailed Description

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

It represents a `Literal | VariableRef` – see the `operand?` field of the `FunctionRef` interface defined at: https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model.md#expressions with the difference that it can also represent a null operand (the absent operand in an `annotation` with no operand).

`Operand` is immutable and is 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 215 of file messageformat2_data_model.h.

## Constructor & Destructor Documentation

## ◆ Operand() [1/4]

U_I18N_API icu::message2::data_model::Operand::Operand | ( |  | ) |
| inline

Default constructor.

Creates a null Operand.

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 271 of file messageformat2_data_model.h.

## ◆ Operand() [2/4]

U_I18N_API icu::message2::data_model::Operand::Operand | ( | const UnicodeString & | v | ) |
| inlineexplicit

Variable operand constructor.

Parameters

  v | The variable name; an operand corresponding to a reference to `v` is returned.

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 281 of file messageformat2_data_model.h.

## ◆ Operand() [3/4]

U_I18N_API icu::message2::data_model::Operand::Operand | ( | const Literal & | l | ) |
| inlineexplicit

Literal operand constructor.

Parameters

  l | The literal to use for this operand; an operand corresponding to `l` is returned.

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 291 of file messageformat2_data_model.h.

## ◆ Operand() [4/4]

U_I18N_API icu::message2::data_model::Operand::Operand | ( | const Operand & |  | ) |

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.

## ◆ ~Operand()

virtual U_I18N_API icu::message2::data_model::Operand::~Operand | ( |  | ) |
| 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()

U_I18N_API const Literal& icu::message2::data_model::Operand::asLiteral | ( |  | ) | const

Returns a reference to this operand's literal contents.

Precondition: isLiteral()

Returns
  A reference to the literal

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

Deprecated:
  This API is for technology preview only.

## ◆ asVariable()

U_I18N_API const UnicodeString& icu::message2::data_model::Operand::asVariable | ( |  | ) | const

Returns a reference to this operand's variable name.

Precondition: isVariable()

Returns
  A reference to the name of the variable

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

Deprecated:
  This API is for technology preview only.

## ◆ isLiteral()

U_I18N_API UBool icu::message2::data_model::Operand::isLiteral | ( |  | ) | const

Determines if this operand represents a literal.

Returns
  True if and only if the operand is a literal.

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

Deprecated:
  This API is for technology preview only.

## ◆ isNull()

virtual U_I18N_API UBool icu::message2::data_model::Operand::isNull | ( |  | ) | const
| virtual

Determines if this operand is the null operand.

Returns
  True if and only if the operand is the null operand.

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

Deprecated:
  This API is for technology preview only.

## ◆ isVariable()

U_I18N_API UBool icu::message2::data_model::Operand::isVariable | ( |  | ) | const

Determines if this operand represents a variable.

Returns
  True if and only if the operand is a variable.

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

Deprecated:
  This API is for technology preview only.

## ◆ operator=()

virtual U_I18N_API Operand& icu::message2::data_model::Operand::operator= | ( | Operand |  | ) |
| virtualnoexcept

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.

## Friends And Related Function Documentation

## ◆ swap

U_I18N_API friend void swap | ( | Operand & | o1,
|  | Operand & | o2
| ) |  |
| friend

Non-member swap function.

Parameters

  o1 | will get o2's contents
  o2 | will get o1'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 300 of file messageformat2_data_model.h.

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

- i18n/unicode/messageformat2_data_model.h