1 // © 2019 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
4 #include "unicode/utypes.h"
6 #if !UCONFIG_NO_FORMATTING
8 #include "unicode/numberformatter.h"
9 #include "number_utypes.h"
11 #include "number_decimalquantity.h"
12 #include "number_decnum.h"
18 UPRV_FORMATTED_VALUE_SUBCLASS_AUTO_IMPL(FormattedNumber
)
22 UBool
FormattedNumber::nextFieldPosition(FieldPosition
& fieldPosition
, UErrorCode
& status
) const {
23 UPRV_FORMATTED_VALUE_METHOD_GUARD(FALSE
)
24 return fData
->nextFieldPosition(fieldPosition
, status
);
27 void FormattedNumber::getAllFieldPositions(FieldPositionIterator
& iterator
, UErrorCode
& status
) const {
28 FieldPositionIteratorHandler
fpih(&iterator
, status
);
29 getAllFieldPositionsImpl(fpih
, status
);
32 void FormattedNumber::toDecimalNumber(ByteSink
& sink
, UErrorCode
& status
) const {
33 UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG
)
35 fData
->quantity
.toDecNum(decnum
, status
);
36 decnum
.toString(sink
, status
);
39 void FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler
& fpih
,
40 UErrorCode
& status
) const {
41 UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG
)
42 fData
->getAllFieldPositions(fpih
, status
);
45 void FormattedNumber::getDecimalQuantity(impl::DecimalQuantity
& output
, UErrorCode
& status
) const {
46 UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG
)
47 output
= fData
->quantity
;
51 impl::UFormattedNumberData::~UFormattedNumberData() = default;
57 #endif /* #if !UCONFIG_NO_FORMATTING */