17#if U_SHOW_CPLUSPLUS_API
23#if !UCONFIG_NO_COLLATION
81class RuleBasedCollator;
82class StringEnumeration;
227 friend class BucketList;
294 BucketList *buckets_;
694 BucketList *createBucketList(
UErrorCode &errorCode)
const;
697 void internalResetBucketIterator();
705#ifndef U_HIDE_INTERNAL_API
730 int32_t labelsIterIndex_;
731 int32_t itemsIterIndex_;
732 Bucket *currentBucket_;
736 int32_t maxLabelCount_;
738 UnicodeSet *initialLabels_;
743 UVector *firstCharsInScripts_;
746 RuleBasedCollator *collator_;
747 RuleBasedCollator *collatorPrimaryOnly_;
750 BucketList *buckets_;
752 UnicodeString inflowLabel_;
753 UnicodeString overflowLabel_;
754 UnicodeString underflowLabel_;
755 UnicodeString overflowComparisonString_;
757 UnicodeString emptyString_;
UAlphabeticIndexLabelType
Constants for Alphabetic Index Label Types.
@ U_ALPHAINDEX_OVERFLOW
Overflow Label.
@ U_ALPHAINDEX_UNDERFLOW
Underflow Label.
@ U_ALPHAINDEX_NORMAL
Normal Label, typically the starting letter of the names in the bucket with this label.
@ U_ALPHAINDEX_INFLOW
Inflow Label.
An index "bucket" with a label string and type.
UAlphabeticIndexLabelType getLabelType() const
Returns whether this bucket is a normal, underflow, overflow, or inflow bucket.
const UnicodeString & getLabel() const
Returns the label string.
virtual ~Bucket()
Destructor.
Immutable, thread-safe version of AlphabeticIndex.
int32_t getBucketCount() const
Returns the number of index buckets and labels, including underflow/inflow/overflow.
const Bucket * getBucket(int32_t index) const
Returns the index-th bucket.
int32_t getBucketIndex(const UnicodeString &name, UErrorCode &errorCode) const
Finds the index bucket for the given name and returns the number of that bucket.
virtual ~ImmutableIndex()
Destructor.
AlphabeticIndex supports the creation of a UI index appropriate for a given language.
virtual AlphabeticIndex & setOverflowLabel(const UnicodeString &overflowLabel, UErrorCode &status)
Set the label used for items that sort after the last normal label, and that would not otherwise have...
virtual const void * getRecordData() const
Return the data pointer of the Record currently being iterated over.
virtual UBool nextRecord(UErrorCode &status)
Advance to the next record in the current Bucket.
virtual const RuleBasedCollator & getCollator() const
Get the Collator that establishes the ordering of the items in this index.
virtual AlphabeticIndex & addLabels(const UnicodeSet &additions, UErrorCode &status)
Add Labels to this Index.
AlphabeticIndex(RuleBasedCollator *collator, UErrorCode &status)
Construct an AlphabeticIndex that uses a specific collator.
virtual int32_t getRecordCount(UErrorCode &status)
Get the total number of Records in this index, that is, the number of <name, data> pairs added.
virtual ~AlphabeticIndex()
Destructor.
virtual AlphabeticIndex & addRecord(const UnicodeString &name, const void *data, UErrorCode &status)
Add a record to the index.
virtual const UnicodeString & getUnderflowLabel() const
Get the special label used for items that sort before the first normal label, and that would not othe...
virtual AlphabeticIndex & resetRecordIterator()
Reset the Record iterator position to before the first Record in the current Bucket.
virtual const UnicodeString & getBucketLabel() const
Return the name of the Label of the current bucket from an iteration over the buckets.
virtual const UnicodeString & getRecordName() const
Get the name of the current Record.
virtual const UnicodeString & getInflowLabel() const
Get the default label used for abbreviated buckets between other index characters.
virtual UBool nextBucket(UErrorCode &status)
Advance the iteration over the Buckets of this index.
AlphabeticIndex(const Locale &locale, UErrorCode &status)
Construct an AlphabeticIndex object for the specified locale.
virtual AlphabeticIndex & clearRecords(UErrorCode &status)
Remove all Records from the Index.
ImmutableIndex * buildImmutableIndex(UErrorCode &errorCode)
Builds an immutable, thread-safe version of this instance, without data records.
virtual AlphabeticIndex & setInflowLabel(const UnicodeString &inflowLabel, UErrorCode &status)
Set the default label used for abbreviated buckets between other index characters.
virtual AlphabeticIndex & setMaxLabelCount(int32_t maxLabelCount, UErrorCode &status)
Set a limit on the number of labels permitted in the index.
virtual int32_t getBucketIndex(const UnicodeString &itemName, UErrorCode &status)
Given the name of a record, return the zero-based index of the Bucket in which the item should appear...
virtual int32_t getBucketIndex() const
Get the zero based index of the current Bucket from an iteration over the Buckets of this index.
virtual AlphabeticIndex & addLabels(const Locale &locale, UErrorCode &status)
Add the index characters from a Locale to the index.
virtual const UnicodeString & getOverflowLabel() const
Get the special label used for items that sort after the last normal label, and that would not otherw...
virtual AlphabeticIndex & resetBucketIterator(UErrorCode &status)
Reset the Bucket iteration for this index.
virtual AlphabeticIndex & setUnderflowLabel(const UnicodeString &underflowLabel, UErrorCode &status)
Set the label used for items that sort before the first normal label, and that would not otherwise ha...
virtual int32_t getBucketRecordCount() const
Get the number of <name, data> Records in the current Bucket.
virtual int32_t getBucketCount(UErrorCode &status)
Get the number of labels in this index.
virtual UAlphabeticIndexLabelType getBucketLabelType() const
Return the type of the label for the current Bucket (selected by the iteration over Buckets....
virtual int32_t getMaxLabelCount() const
Get the limit on the number of labels permitted in the index.
The Collator class performs locale-sensitive string comparison.
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A Locale object represents a specific geographical, political, or cultural region.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables.
UMemory is the common ICU base class.
UObject is the common ICU "boilerplate" class.
A mutable set of Unicode characters and multicharacter strings.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
C++ API: Locale ID object.
struct UHashtable UHashtable
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
bool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
int8_t UBool
The ICU boolean type, a signed-byte integer.
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
C++ API: Common ICU base class UObject.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.