Go to the documentation of this file.
17 #if U_SHOW_CPLUSPLUS_API
23 #if !UCONFIG_NO_COLLATION
81 class RuleBasedCollator;
82 class StringEnumeration;
227 friend class BucketList;
233 int32_t displayIndex_;
292 : buckets_(bucketList), collatorPrimaryOnly_(collatorPrimaryOnly) {}
294 BucketList *buckets_;
684 UVector *firstStringsInScript(
UErrorCode &status);
693 void initLabels(UVector &indexCharacters,
UErrorCode &errorCode)
const;
694 BucketList *createBucketList(
UErrorCode &errorCode)
const;
697 void internalResetBucketIterator();
705 #ifndef U_HIDE_INTERNAL_API
712 struct Record:
public UMemory {
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_;
762 #endif // !UCONFIG_NO_COLLATION
UAlphabeticIndexLabelType getLabelType() const
Returns whether this bucket is a normal, underflow, overflow, or inflow 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 ~AlphabeticIndex()
Destructor.
virtual AlphabeticIndex & addLabels(const UnicodeSet &additions, UErrorCode &status)
Add Labels to this Index.
struct UHashtable UHashtable
const UnicodeString & getLabel() const
Returns the label string.
virtual const UnicodeString & getRecordName() const
Get the name of the current Record.
virtual const void * getRecordData() const
Return the data pointer of the Record currently being iterated over.
virtual ~ImmutableIndex()
Destructor.
Basic definitions for ICU, for both C and C++ APIs.
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 getBucketRecordCount() const
Get the number of <name, data> Records in the current Bucket.
A mutable set of Unicode characters and multicharacter strings.
virtual UAlphabeticIndexLabelType getBucketLabelType() const
Return the type of the label for the current Bucket (selected by the iteration over Buckets....
UAlphabeticIndexLabelType
Constants for Alphabetic Index Label Types.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
int8_t UBool
The ICU boolean type.
int32_t getBucketCount() const
Returns the number of index buckets and labels, including underflow/inflow/overflow.
virtual int32_t getBucketCount(UErrorCode &status)
Get the number of labels in this index.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
The Collator class performs locale-sensitive string comparison.
virtual UBool nextBucket(UErrorCode &status)
Advance the iteration over the Buckets of 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...
virtual const UnicodeString & getInflowLabel() const
Get the default label used for abbreviated buckets between other index characters.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
virtual AlphabeticIndex & resetRecordIterator()
Reset the Record iterator position to before the first Record in the current Bucket.
const Bucket * getBucket(int32_t index) const
Returns the index-th bucket.
virtual AlphabeticIndex & setInflowLabel(const UnicodeString &inflowLabel, UErrorCode &status)
Set the default label used for abbreviated buckets between other index characters.
virtual AlphabeticIndex & addRecord(const UnicodeString &name, const void *data, UErrorCode &status)
Add a record to the index.
UObject is the common ICU "boilerplate" class.
@ U_ALPHAINDEX_NORMAL
Normal Label, typically the starting letter of the names in the bucket with this label.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
virtual AlphabeticIndex & clearRecords(UErrorCode &status)
Remove all Records from the Index.
virtual ~Bucket()
Destructor.
UMemory is the common ICU base class.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables.
@ U_ALPHAINDEX_INFLOW
Inflow Label.
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
virtual int32_t getBucketIndex() const
Get the zero based index of the current Bucket from an iteration over the Buckets of 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.
AlphabeticIndex(const Locale &locale, UErrorCode &status)
Construct an AlphabeticIndex object for the specified locale.
ImmutableIndex * buildImmutableIndex(UErrorCode &errorCode)
Builds an immutable, thread-safe version of this instance, without data records.
virtual int32_t getMaxLabelCount() const
Get the limit on the number of labels permitted in the index.
virtual AlphabeticIndex & resetBucketIterator(UErrorCode &status)
Reset the Bucket iteration for this index.
virtual AlphabeticIndex & addLabels(const Locale &locale, UErrorCode &status)
Add the index characters from a Locale to the index.
virtual AlphabeticIndex & setMaxLabelCount(int32_t maxLabelCount, UErrorCode &status)
Set a limit on the number of labels permitted in the index.
Immutable, thread-safe version of AlphabeticIndex.
@ U_ALPHAINDEX_OVERFLOW
Overflow Label.
@ U_ALPHAINDEX_UNDERFLOW
Undeflow Label.
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 const RuleBasedCollator & getCollator() const
Get the Collator that establishes the ordering of the items in this index.
virtual const UnicodeString & getBucketLabel() const
Return the name of the Label of the current bucket from an iteration over the buckets.
C++ API: Locale ID object.
C++ API: Common ICU base class UObject.
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 UBool nextRecord(UErrorCode &status)
Advance to the next record in the current Bucket.
A Locale object represents a specific geographical, political, or cultural region.
An index "bucket" with a label string and type.
virtual const UnicodeString & getUnderflowLabel() const
Get the special label used for items that sort before the first normal label, and that would not othe...