]> git.saurik.com Git - apple/icu.git/blame - icuSources/i18n/digitaffix.h
ICU-57149.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / digitaffix.h
CommitLineData
2ca993e8
A
1/*
2*******************************************************************************
3* Copyright (C) 2015, International Business Machines
4* Corporation and others. All Rights Reserved.
5*******************************************************************************
6* digitaffix.h
7*
8* created on: 2015jan06
9* created by: Travis Keep
10*/
11
12#ifndef __DIGITAFFIX_H__
13#define __DIGITAFFIX_H__
14
15#include "unicode/uobject.h"
16
17#if !UCONFIG_NO_FORMATTING
18
19#include "unicode/unistr.h"
20#include "unicode/unum.h"
21#include "unicode/utypes.h"
22
23U_NAMESPACE_BEGIN
24
25class FieldPositionHandler;
26
27/**
28 * A prefix or suffix of a formatted number.
29 */
30class U_I18N_API DigitAffix : public UMemory {
31public:
32
33 /**
34 * Creates an empty DigitAffix.
35 */
36 DigitAffix();
37
38 /**
39 * Creates a DigitAffix containing given UChars where all of it has
40 * a field type of fieldId.
41 */
42 DigitAffix(
43 const UChar *value,
44 int32_t charCount,
45 int32_t fieldId=UNUM_FIELD_COUNT);
46
47 /**
48 * Makes this affix be the empty string.
49 */
50 void remove();
51
52 /**
53 * Append value to this affix. If fieldId is present, the appended
54 * string is considered to be the type fieldId.
55 */
56 void appendUChar(UChar value, int32_t fieldId=UNUM_FIELD_COUNT);
57
58 /**
59 * Append value to this affix. If fieldId is present, the appended
60 * string is considered to be the type fieldId.
61 */
62 void append(const UnicodeString &value, int32_t fieldId=UNUM_FIELD_COUNT);
63
64 /**
65 * Sets this affix to given string. The entire string
66 * is considered to be the type fieldId.
67 */
68 void setTo(const UnicodeString &value, int32_t fieldId=UNUM_FIELD_COUNT);
69
70 /**
71 * Append value to this affix. If fieldId is present, the appended
72 * string is considered to be the type fieldId.
73 */
74 void append(const UChar *value, int32_t charCount, int32_t fieldId=UNUM_FIELD_COUNT);
75
76 /**
77 * Formats this affix.
78 */
79 UnicodeString &format(
80 FieldPositionHandler &handler, UnicodeString &appendTo) const;
81 int32_t countChar32() const { return fAffix.countChar32(); }
82
83 /**
84 * Returns this affix as a unicode string.
85 */
86 const UnicodeString & toString() const { return fAffix; }
87
88 /**
89 * Returns TRUE if this object equals rhs.
90 */
91 UBool equals(const DigitAffix &rhs) const {
92 return ((fAffix == rhs.fAffix) && (fAnnotations == rhs.fAnnotations));
93 }
94private:
95 UnicodeString fAffix;
96 UnicodeString fAnnotations;
97};
98
99
100U_NAMESPACE_END
101#endif // #if !UCONFIG_NO_FORMATTING
102#endif // __DIGITAFFIX_H__