17 #if !UCONFIG_NO_COLLATION
221 friend class BucketList;
227 int32_t displayIndex_;
284 : buckets_(bucketList), collatorPrimaryOnly_(collatorPrimaryOnly) {}
286 BucketList *buckets_;
675 UVector *firstStringsInScript(
UErrorCode &status);
684 void initLabels(UVector &indexCharacters,
UErrorCode &errorCode)
const;
685 BucketList *createBucketList(
UErrorCode &errorCode)
const;
688 void internalResetBucketIterator();
696 #ifndef U_HIDE_INTERNAL_API
719 int32_t labelsIterIndex_;
720 int32_t itemsIterIndex_;
725 int32_t maxLabelCount_;
732 UVector *firstCharsInScripts_;
739 BucketList *buckets_;
UAlphabeticIndexLabelType
Constants for Alphabetic Index Label Types.
@ U_ALPHAINDEX_OVERFLOW
Overflow Label.
@ U_ALPHAINDEX_UNDERFLOW
Undeflow 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.
virtual ~Bucket()
Destructor.
const UnicodeString & getLabel() const
Returns the label string.
Immutable, thread-safe version of AlphabeticIndex.
const Bucket * getBucket(int32_t index) const
Returns the index-th bucket.
int32_t getBucketCount() const
Returns the number of index buckets and labels, including underflow/inflow/overflow.
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 const UnicodeString & getInflowLabel() const
Get the default label used for abbreviated buckets between other index characters.
virtual AlphabeticIndex & addLabels(const Locale &locale, UErrorCode &status)
Add the index characters from a Locale to the index.
virtual AlphabeticIndex & clearRecords(UErrorCode &status)
Remove all Records from the Index.
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 const UnicodeString & getUnderflowLabel() const
Get the special label used for items that sort before the first normal label, and that would not othe...
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 AlphabeticIndex & addRecord(const UnicodeString &name, const void *data, UErrorCode &status)
Add a record to the index.
virtual int32_t getBucketIndex() const
Get the zero based index of the current Bucket from an iteration over the Buckets of this 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 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 AlphabeticIndex & addLabels(const UnicodeSet &additions, UErrorCode &status)
Add Labels to this Index.
virtual int32_t getMaxLabelCount() const
Get the limit on the number of labels permitted in the index.
virtual int32_t getBucketCount(UErrorCode &status)
Get the number of labels in this index.
virtual ~AlphabeticIndex()
Destructor.
virtual AlphabeticIndex & resetBucketIterator(UErrorCode &status)
Reset the Bucket iteration for this index.
virtual AlphabeticIndex & resetRecordIterator()
Reset the Record iterator position to before the first Record in the current Bucket.
virtual const UnicodeString & getRecordName() const
Get the name of the current Record.
virtual AlphabeticIndex & setInflowLabel(const UnicodeString &inflowLabel, UErrorCode &status)
Set the default label used for abbreviated buckets between other index characters.
virtual const UnicodeString & getBucketLabel() const
Return the name of the Label of the current bucket from an iteration over the buckets.
virtual UAlphabeticIndexLabelType getBucketLabelType() const
Return the type of the label for the current Bucket (selected by the iteration over Buckets....
virtual AlphabeticIndex & setMaxLabelCount(int32_t maxLabelCount, UErrorCode &status)
Set a limit on the number of labels permitted in the index.
AlphabeticIndex(RuleBasedCollator *collator, UErrorCode &status)
Construct an AlphabeticIndex that uses a specific collator.
AlphabeticIndex(const Locale &locale, UErrorCode &status)
Construct an AlphabeticIndex object for the specified locale.
virtual const RuleBasedCollator & getCollator() const
Get the Collator that establishes the ordering of the items in this 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...
ImmutableIndex * buildImmutableIndex(UErrorCode &errorCode)
Builds an immutable, thread-safe version of this instance, without data records.
virtual int32_t getBucketRecordCount() const
Get the number of <name, data> Records in the current Bucket.
virtual UBool nextBucket(UErrorCode &status)
Advance the iteration over the Buckets of this index.
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...
The Collator class performs locale-sensitive string comparison.
A Locale object represents a specific geographical, political, or cultural region.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables.
Base class for 'pure' C++ implementations of uenum api.
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.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
A (name, data) pair, to be sorted by name into one of the index buckets.
#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.
#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
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.