ICU 56.1: normalizer2.h Source File

ICU 56.1 56.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

normalizer2.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 *
4 * Copyright (C) 2009-2013, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 *******************************************************************************
8 * file name: normalizer2.h
9 * encoding: US-ASCII
10 * tab size: 8 (not used)
11 * indentation:4
12 *
13 * created on: 2009nov22
14 * created by: Markus W. Scherer
15 */
16
17 #ifndef __NORMALIZER2_H__
18 #define __NORMALIZER2_H__
19
25 #include "unicode/utypes.h"
26
27 #if !UCONFIG_NO_NORMALIZATION
28
29 #include "unicode/uniset.h"
30 #include "unicode/unistr.h"
31 #include "unicode/unorm2.h"
32
33 U_NAMESPACE_BEGIN
34
78 class U_COMMON_API Normalizer2 : public UObject {
79 public:
84 ~Normalizer2();
85
97 static const Normalizer2 *
98 getNFCInstance(UErrorCode &errorCode);
99
111 static const Normalizer2 *
112 getNFDInstance(UErrorCode &errorCode);
113
125 static const Normalizer2 *
126 getNFKCInstance(UErrorCode &errorCode);
127
139 static const Normalizer2 *
140 getNFKDInstance(UErrorCode &errorCode);
141
153 static const Normalizer2 *
154 getNFKCCasefoldInstance(UErrorCode &errorCode);
155
177 static const Normalizer2 *
178 getInstance(const char *packageName,
179 const char *name,
180 UNormalization2Mode mode,
181 UErrorCode &errorCode);
182
193 UnicodeString
194 normalize(const UnicodeString &src, UErrorCode &errorCode) const {
195 UnicodeString result;
196 normalize(src, result, errorCode);
197 return result;
198 }
212 virtual UnicodeString &
213 normalize(const UnicodeString &src,
214 UnicodeString &dest,
215 UErrorCode &errorCode) const = 0;
230 virtual UnicodeString &
231 normalizeSecondAndAppend(UnicodeString &first,
232 const UnicodeString &second,
233 UErrorCode &errorCode) const = 0;
248 virtual UnicodeString &
249 append(UnicodeString &first,
250 const UnicodeString &second,
251 UErrorCode &errorCode) const = 0;
252
266 virtual UBool
267 getDecomposition(UChar32 c, UnicodeString &decomposition) const = 0;
268
293 virtual UBool
294 getRawDecomposition(UChar32 c, UnicodeString &decomposition) const;
295
311 virtual UChar32
312 composePair(UChar32 a, UChar32 b) const;
313
322 virtual uint8_t
323 getCombiningClass(UChar32 c) const;
324
339 virtual UBool
340 isNormalized(const UnicodeString &s, UErrorCode &errorCode) const = 0;
341
357 virtual UNormalizationCheckResult
358 quickCheck(const UnicodeString &s, UErrorCode &errorCode) const = 0;
359
382 virtual int32_t
383 spanQuickCheckYes(const UnicodeString &s, UErrorCode &errorCode) const = 0;
384
398 virtual UBool hasBoundaryBefore(UChar32 c) const = 0;
399
414 virtual UBool hasBoundaryAfter(UChar32 c) const = 0;
415
429 virtual UBool isInert(UChar32 c) const = 0;
430 };
431
443 class U_COMMON_API FilteredNormalizer2 : public Normalizer2 {
444 public:
455 FilteredNormalizer2(const Normalizer2 &n2, const UnicodeSet &filterSet) :
456 norm2(n2), set(filterSet) {}
457
462 ~FilteredNormalizer2();
463
477 virtual UnicodeString &
478 normalize(const UnicodeString &src,
479 UnicodeString &dest,
480 UErrorCode &errorCode) const;
495 virtual UnicodeString &
496 normalizeSecondAndAppend(UnicodeString &first,
497 const UnicodeString &second,
498 UErrorCode &errorCode) const;
513 virtual UnicodeString &
514 append(UnicodeString &first,
515 const UnicodeString &second,
516 UErrorCode &errorCode) const;
517
529 virtual UBool
530 getDecomposition(UChar32 c, UnicodeString &decomposition) const;
531
543 virtual UBool
544 getRawDecomposition(UChar32 c, UnicodeString &decomposition) const;
545
556 virtual UChar32
557 composePair(UChar32 a, UChar32 b) const;
558
567 virtual uint8_t
568 getCombiningClass(UChar32 c) const;
569
581 virtual UBool
582 isNormalized(const UnicodeString &s, UErrorCode &errorCode) const;
594 virtual UNormalizationCheckResult
595 quickCheck(const UnicodeString &s, UErrorCode &errorCode) const;
607 virtual int32_t
608 spanQuickCheckYes(const UnicodeString &s, UErrorCode &errorCode) const;
609
618 virtual UBool hasBoundaryBefore(UChar32 c) const;
619
628 virtual UBool hasBoundaryAfter(UChar32 c) const;
629
637 virtual UBool isInert(UChar32 c) const;
638 private:
639 UnicodeString &
640 normalize(const UnicodeString &src,
641 UnicodeString &dest,
642 USetSpanCondition spanCondition,
643 UErrorCode &errorCode) const;
644
645 UnicodeString &
646 normalizeSecondAndAppend(UnicodeString &first,
647 const UnicodeString &second,
648 UBool doNormalize,
649 UErrorCode &errorCode) const;
650
651 const Normalizer2 &norm2;
652 const UnicodeSet &set;
653 };
654
655 U_NAMESPACE_END
656
657 #endif // !UCONFIG_NO_NORMALIZATION
658 #endif // __NORMALIZER2_H__
icu::Normalizer2::getRawDecomposition
virtual UBool getRawDecomposition(UChar32 c, UnicodeString &decomposition) const
Gets the raw decomposition mapping of c.
icu::Normalizer2::hasBoundaryAfter
virtual UBool hasBoundaryAfter(UChar32 c) const =0
Tests if the character always has a normalization boundary after it, regardless of context...
icu::Normalizer2::isNormalized
virtual UBool isNormalized(const UnicodeString &s, UErrorCode &errorCode) const =0
Tests if the string is normalized.
icu::Normalizer2::normalizeSecondAndAppend
virtual UnicodeString & normalizeSecondAndAppend(UnicodeString &first, const UnicodeString &second, UErrorCode &errorCode) const =0
Appends the normalized form of the second string to the first string (merging them at the boundary) a...
icu::Normalizer2::normalize
UnicodeString normalize(const UnicodeString &src, UErrorCode &errorCode) const
Returns the normalized form of the source string.
Definition: normalizer2.h:194
icu::Normalizer2::composePair
virtual UChar32 composePair(UChar32 a, UChar32 b) const
Performs pairwise composition of a & b and returns the composite if there is one. ...
unistr.h
C++ API: Unicode String.
icu::Normalizer2::spanQuickCheckYes
virtual int32_t spanQuickCheckYes(const UnicodeString &s, UErrorCode &errorCode) const =0
Returns the end of the normalized substring of the input string.
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
icu::Normalizer2::isInert
virtual UBool isInert(UChar32 c) const =0
Tests if the character is normalization-inert.
icu::Normalizer2::hasBoundaryBefore
virtual UBool hasBoundaryBefore(UChar32 c) const =0
Tests if the character always has a normalization boundary before it, regardless of context...
icu::Normalizer2
Unicode normalization functionality for standard Unicode normalization or for using custom mapping ta...
Definition: normalizer2.h:78
unorm2.h
C API: New API for Unicode Normalization.
UChar32
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:332
icu::FilteredNormalizer2::FilteredNormalizer2
FilteredNormalizer2(const Normalizer2 &n2, const UnicodeSet &filterSet)
Constructs a filtered normalizer wrapping any Normalizer2 instance and a filter set.
Definition: normalizer2.h:455
icu::Normalizer2::getDecomposition
virtual UBool getDecomposition(UChar32 c, UnicodeString &decomposition) const =0
Gets the decomposition mapping of c.
icu::UnicodeSet
A mutable set of Unicode characters and multicharacter strings.
Definition: uniset.h:276
USetSpanCondition
USetSpanCondition
Argument values for whether span() and similar functions continue while the current character is cont...
Definition: uset.h:150
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
UNormalization2Mode
UNormalization2Mode
Constants for normalization modes.
Definition: unorm2.h:42
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
icu::Normalizer2::getCombiningClass
virtual uint8_t getCombiningClass(UChar32 c) const
Gets the combining class of c.
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
U_COMMON_API
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
Definition: utypes.h:357
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:293
icu::Normalizer2::append
virtual UnicodeString & append(UnicodeString &first, const UnicodeString &second, UErrorCode &errorCode) const =0
Appends the second string to the first string (merging them at the boundary) and returns the first st...
icu::Normalizer2::quickCheck
virtual UNormalizationCheckResult quickCheck(const UnicodeString &s, UErrorCode &errorCode) const =0
Tests if the string is normalized.
icu::UObject
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
icu::FilteredNormalizer2
Normalization filtered by a UnicodeSet.
Definition: normalizer2.h:443
UNormalizationCheckResult
UNormalizationCheckResult
Result values for normalization quick check functions.
Definition: unorm2.h:91
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
uniset.h
C++ API: Unicode Set.