ICU 76.1 76.1
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:
icu::UObject icu::UMemory

Public Member Functions

UBool isVariable () const
 Determines if this operand represents a variable.
 
UBool isLiteral () const
 Determines if this operand represents a literal.
 
virtual UBool isNull () const
 Determines if this operand is the null operand.
 
const UnicodeStringasVariable () const
 Returns a reference to this operand's variable name.
 
const LiteralasLiteral () const
 Returns a reference to this operand's literal contents.
 
 Operand ()
 Default constructor.
 
 Operand (const UnicodeString &v)
 Variable operand constructor.
 
 Operand (const Literal &l)
 Literal operand constructor.
 
virtual Operandoperator= (Operand) noexcept
 Assignment operator.
 
 Operand (const Operand &)
 Copy constructor.
 
virtual ~Operand ()
 Destructor.
 
- Public Member Functions inherited from icu::UObject
virtual ~UObject ()
 Destructor.
 
virtual UClassID getDynamicClassID () const
 ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
 

Friends

void swap (Operand &o1, Operand &o2) noexcept
 Non-member swap function.
 

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

Constructor & Destructor Documentation

◆ Operand() [1/4]

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

◆ Operand() [2/4]

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

Variable operand constructor.

Parameters
vThe 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 320 of file messageformat2_data_model.h.

◆ Operand() [3/4]

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

Literal operand constructor.

Parameters
lThe 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 330 of file messageformat2_data_model.h.

◆ Operand() [4/4]

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 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()

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()

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()

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 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()

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 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 Symbol Documentation

◆ swap

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

Non-member swap function.

Parameters
o1will get o2's contents
o2will 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 339 of file messageformat2_data_model.h.


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