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