36 #if !UCONFIG_NO_COLLATION
48 class CollationIterator;
49 class RuleBasedCollator;
126 NULLORDER = (int32_t)0xffffffff
195 static inline int32_t primaryOrder(int32_t order);
203 static inline int32_t secondaryOrder(int32_t order);
211 static inline int32_t tertiaryOrder(int32_t order);
222 int32_t getMaxExpansion(int32_t order)
const;
230 int32_t strengthOrder(int32_t order)
const;
254 static inline UBool isIgnorable(int32_t order);
261 int32_t getOffset(
void)
const;
270 void setOffset(int32_t newOffset,
UErrorCode& status);
284 static UClassID U_EXPORT2 getStaticClassID();
286 #ifndef U_HIDE_INTERNAL_API
303 #endif // U_HIDE_INTERNAL_API
307 friend class UCollationPCE;
352 inline int8_t normalizeDir()
const {
return dir_ == 1 ? 0 : dir_; }
354 static UHashtable *computeMaxExpansions(
const CollationData *data,
UErrorCode &errorCode);
356 static int32_t getMaxExpansion(
const UHashtable *maxExpansions, int32_t order);
360 CollationIterator *iter_;
361 const RuleBasedCollator *rbc_;
375 UnicodeString string_;
380 inline int32_t CollationElementIterator::primaryOrder(int32_t order)
382 return (order >> 16) & 0xffff;
385 inline int32_t CollationElementIterator::secondaryOrder(int32_t order)
387 return (order >> 8) & 0xff;
390 inline int32_t CollationElementIterator::tertiaryOrder(int32_t order)
395 inline UBool CollationElementIterator::isIgnorable(int32_t order)
397 return (order & 0xffff0000) == 0;