1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*******************************************************************************
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* Copyright (C) 1996-2005, International Business Machines Corporation and    *
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* others. All Rights Reserved.                                                *
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*******************************************************************************
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*******************************************************************************
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*/
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage com.ibm.icu4jni.text;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.text.CharacterIterator;
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* Collation element iterator JNI wrapper.
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* Iterates over the collation elements of a data string.
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* The iterator supports both forward and backwards full iteration, ie if
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* backwards iteration is performed in the midst of a forward iteration, the
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* result is undefined.
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* To perform a backwards iteration in the midst of a forward iteration,
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* reset() has to be called.
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* This will shift the position to either the start or the last character in the
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* data string depending on whether next() is called or previous().
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* <pre>
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   RuleBasedCollator coll = Collator.getInstance();
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   CollationElementIterator iterator = coll.getCollationElementIterator("abc");
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   int ce = 0;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   while (ce != CollationElementIterator.NULLORDER) {
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*     ce = iterator.next();
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   }
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   iterator.reset();
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   while (ce != CollationElementIterator.NULLORDER) {
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*     ce = iterator.previous();
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*   }
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* </pre>
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* @author syn wee quek
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* @stable ICU 2.4
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*/
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic final class CollationElementIterator
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // public data member -------------------------------------------
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project   * @stable ICU 2.4
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project   */
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public static final int NULLORDER = 0xFFFFFFFF;
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // public methods -----------------------------------------------
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Reset the collation elements to their initial state.
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * This will move the 'cursor' to the beginning of the text.
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public void reset()
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    NativeCollation.reset(m_collelemiterator_);
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Get the ordering priority of the next collation element in the text.
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * A single character may contain more than one collation element.
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return next collation elements ordering, or NULLORDER if the end of the
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  *         text is reached.
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public int next()
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return NativeCollation.next(m_collelemiterator_);
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Get the ordering priority of the previous collation element in the text.
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * A single character may contain more than one collation element.
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return previous collation element ordering, or NULLORDER if the end of
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  *         the text is reached.
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public int previous()
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return NativeCollation.previous(m_collelemiterator_);
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Get the maximum length of any expansion sequences that end with the
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * specified comparison order.
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param order collation order returned by previous or next.
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return maximum size of the expansion sequences ending with the collation
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  *              element or 1 if collation element does not occur at the end of
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  *              any expansion sequence
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public int getMaxExpansion(int order)
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return NativeCollation.getMaxExpansion(m_collelemiterator_, order);
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Set the text containing the collation elements.
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param source text containing the collation elements.
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public void setText(String source)
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    NativeCollation.setText(m_collelemiterator_, source);
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // BEGIN android-added
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public void setText(CharacterIterator source)
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    NativeCollation.setText(m_collelemiterator_, source.toString());
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // END android-added
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Get the offset of the current source character.
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * This is an offset into the text of the character containing the current
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * collation elements.
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return offset of the current source character.
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public int getOffset()
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return NativeCollation.getOffset(m_collelemiterator_);
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Set the offset of the current source character.
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * This is an offset into the text of the character to be processed.
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param offset The desired character offset.
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public void setOffset(int offset)
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    NativeCollation.setOffset(m_collelemiterator_, offset);
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Gets the primary order of a collation order.
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param order the collation order
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return the primary order of a collation order.
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public static int primaryOrder(int order)
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return ((order & PRIMARY_ORDER_MASK_) >> PRIMARY_ORDER_SHIFT_) &
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                                       UNSIGNED_16_BIT_MASK_;
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Gets the secondary order of a collation order.
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param order the collation order
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return the secondary order of a collation order.
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public static int secondaryOrder(int order)
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return (order & SECONDARY_ORDER_MASK_) >> SECONDARY_ORDER_SHIFT_;
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Gets the tertiary order of a collation order.
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param order the collation order
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @return the tertiary order of a collation order.
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  public static int tertiaryOrder(int order)
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return order & TERTIARY_ORDER_MASK_;
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // protected constructor ----------------------------------------
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * CollationElementIteratorJNI constructor.
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * The only caller of this class should be
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * RuleBasedCollator.getCollationElementIterator().
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @param collelemiteratoraddress address of C collationelementiterator
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  CollationElementIterator(int collelemiteratoraddress)
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    m_collelemiterator_ = collelemiteratoraddress;
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // protected methods --------------------------------------------
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Garbage collection.
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Close C collator and reclaim memory.
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * @stable ICU 2.4
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  protected void finalize()
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  {
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    NativeCollation.closeElements(m_collelemiterator_);
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  }
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  // private data members -----------------------------------------
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * C collator
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private int m_collelemiterator_;
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * ICU constant primary order mask for collation elements
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int PRIMARY_ORDER_MASK_ = 0xffff0000;
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * ICU constant secondary order mask for collation elements
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int SECONDARY_ORDER_MASK_ = 0x0000ff00;
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * ICU constant tertiary order mask for collation elements
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int TERTIARY_ORDER_MASK_ = 0x000000ff;
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * ICU constant primary order shift for collation elements
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int PRIMARY_ORDER_SHIFT_ = 16;
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * ICU constant secondary order shift for collation elements
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int SECONDARY_ORDER_SHIFT_ = 8;
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  /**
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  * Unsigned 16 bit mask
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  */
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project  private static final int UNSIGNED_16_BIT_MASK_ = 0x0000FFFF;
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
231