1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project*******************************************************************************
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project* Copyright (C) 1996-2006, 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.charset;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Class for accessing the underlying JNI methods
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @internal ICU 2.4
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectfinal class NativeConverter{
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //Native methods
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Converts an array of bytes containing characters in an external
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * encoding into an array of Unicode characters.  This  method allows
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * a buffer by buffer conversion of a data stream.  The state of the
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * conversion is saved between calls to convert.  Among other things,
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this means multibyte input sequences can be split between calls.
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If a call to convert results in an Error, the conversion may be
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * continued by calling convert again with suitably modified parameters.
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * All conversions should be finished with a call to the flush method.
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by C code
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param input byte array containing text to be converted.
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param inEnd stop conversion at this offset in input array (exclusive).
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output character array to receive conversion result.
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int convertByteToChar( long converterHandle,
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] input, int inEnd,
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] output, int outEnd,
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data,
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean flush);
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Converts an array of bytes containing characters in an external
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * encoding into an array of Unicode characters.  This  method allows
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * a buffer by buffer conversion of a data stream.  The state of the
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * conversion is saved between calls to convert.  Among other things,
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this means multibyte input sequences can be split between calls.
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If a call to convert results in an Error, the conversion may be
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * continued by calling convert again with suitably modified parameters.
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * All conversions should be finished with a call to the flush method.
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by C code
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param input byte array containing text to be converted.
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param inEnd stop conversion at this offset in input array (exclusive).
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output character array to receive conversion result.
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int decode( long converterHandle,
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] input, int inEnd,
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] output, int outEnd,
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data,
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean flush);
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Converts an array of Unicode chars containing characters in an
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * external encoding into an array of bytes.  This  method allows
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * a buffer by buffer conversion of a data stream.  The state of the
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * conversion is saved between calls to convert.  Among other things,
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this means multibyte input sequences can be split between calls.
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If a call to convert results in an Error, the conversion may be
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * continued by calling convert again with suitably modified parameters.
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * All conversions should be finished with a call to the flush method.
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by C code
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param input char array containing text to be converted.
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param inEnd stop conversion at this offset in input array (exclusive).
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output byte array to receive conversion result.
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int convertCharToByte(long converterHandle,
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] input, int inEnd,
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] output, int outEnd,
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data,
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean flush);
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Converts an array of Unicode chars containing characters in an
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * external encoding into an array of bytes.  This  method allows
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * a buffer by buffer conversion of a data stream.  The state of the
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * conversion is saved between calls to convert.  Among other things,
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this means multibyte input sequences can be split between calls.
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If a call to convert results in an Error, the conversion may be
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * continued by calling convert again with suitably modified parameters.
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * All conversions should be finished with a call to the flush method.
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by C code
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param input char array containing text to be converted.
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param inEnd stop conversion at this offset in input array (exclusive).
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output byte array to receive conversion result.
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int encode(long converterHandle,
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] input, int inEnd,
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] output, int outEnd,
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data,
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean flush);
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Writes any remaining output to the output buffer and resets the
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * converter to its initial state.
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by C code
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output byte array to receive flushed output.
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int flushCharToByte(long converterHandle,
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] output,
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int outEnd,
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data);
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Writes any remaining output to the output buffer and resets the
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * converter to its initial state.
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param output char array to receive flushed output.
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param outEnd stop writing to output array at this offset (exclusive).
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param data integer array containing the following data
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[0] = inputOffset
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        data[1] = outputOffset
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int flushByteToChar(long converterHandle,
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] output,
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int outEnd,
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   int[] data);
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Open the converter with the specified encoding
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle long array for recieving the adress of converter object
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        created by the native code
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param encoding string representing encoding
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native long openConverter(String encoding);
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Resets the ByteToChar (toUnicode) state of specified converter
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native void resetByteToChar(long  converterHandle);
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Resets the CharToByte (fromUnicode) state of specified converter
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native void resetCharToByte(long  converterHandle);
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Closes the specified converter and releases the resources
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native void closeConverter(long converterHandle);
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the substitution Unicode chars of the specified converter used
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * by encoder
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param subChars array of chars to used for substitution
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length length of the array
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setSubstitutionChars( long converterHandle,
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   char[] subChars,int length);
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the substitution bytes of the specified converter used by decoder
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param subChars array of bytes to used for substitution
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length length of the array
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setSubstitutionBytes( long converterHandle,
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   byte[] subChars,int length);
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the substitution mode of CharToByte(fromUnicode) for the specified converter
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param mode to set the true/false
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setSubstitutionModeCharToByte(long converterHandle,
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean mode);
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the substitution mode of CharToByte(fromUnicode) for the specified converter
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param mode to set the true/false
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 3.6
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setSubstitutionModeByteToChar(long converterHandle,
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                   boolean mode);
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the numnber of invalid bytes in the specified converter object
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * for the last error that has occured
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length array of int to recieve length of the array
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int countInvalidBytes(long converterHandle, int[] length);
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the numnber of invalid chars in the specified converter object
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * for the last error that has occured
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length array of int to recieve length of the array
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int countInvalidChars(long converterHandle, int[] length);
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the number of bytes needed for converting a char
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of bytes needed
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int getMaxBytesPerChar(long converterHandle);
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the number of bytes needed for converting a char
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of bytes needed
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 3.2
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int getMinBytesPerChar(long converterHandle);
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the average numnber of bytes needed for converting a char
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of bytes needed
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native float getAveBytesPerChar(long converterHandle);
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the number of chars needed for converting a byte
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of bytes needed
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int getMaxCharsPerByte(long converterHandle);
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the average numnber of chars needed for converting a byte
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of bytes needed
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native float getAveCharsPerByte(long converterHandle);
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    //CSDL: added by Jack
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Determines whether charset1 contains charset2.
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native boolean contains(long converterHandle1, long converterHandle2);
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native byte[] getSubstitutionBytes(long converterHandle);
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Ascertains if a given Unicode code unit can
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * be converted to the target encoding
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param  codeUnit the character to be converted
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return true if a character can be converted
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native boolean canEncode(long converterHandle,int codeUnit);
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Ascertains if a given a byte sequence can be converted to Unicode
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Address of converter object created by the native code
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param  bytes the bytes to be converted
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return true if a character can be converted
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native boolean canDecode(long converterHandle,byte[] bytes);
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the canonical names of available converters
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return Object[] names as an object array
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native String[] getAvailable();
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the number of aliases for a converter name
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param enc encoding name
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return number of aliases for the converter
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int countAliases(String enc);
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the aliases associated with the converter name
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param enc converter name
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return converter names as elements in an object array
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native String[] getAliases(String enc);
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the canonical name of the converter
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param enc converter name
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return canonical name of the converter
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native String getCanonicalName(String enc);
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the canonical name of the converter as defined by Java
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param enc converter name
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return canonical name of the converter
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 3.4
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native String getICUCanonicalName(String enc);
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the canonical name of the converter as defined by Java
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param icuCanonicalName converter name
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return canonical name of the converter
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 3.4
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native String getJavaCanonicalName(String icuCanonicalName);
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the callback to Unicode for ICU conveter. The default behaviour of ICU callback
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is to call the specified callback function for both illegal and unmapped sequences.
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Adress of the converter object created by native code
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param mode call back mode to set. This is either STOP_CALLBACK, SKIP_CALLBACK or SUBSTITUE_CALLBACK
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        The converter performs the specified callback when an error occurs
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param stopOnIllegal If true sets the alerts the converter callback to stop on an illegal sequence
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setCallbackDecode(long converterHandle, int onMalformedInput, int onUnmappableInput, char[] subChars, int length);
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets the callback from Unicode for ICU conveter. The default behaviour of ICU callback
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is to call the specified callback function for both illegal and unmapped sequences.
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param converterHandle Adress of the converter object created by native code
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param mode call back mode to set. This is either STOP_CALLBACK, SKIP_CALLBACK or SUBSTITUE_CALLBACK
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        The converter performs the specified callback when an error occurs
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param stopOnIllegal If true sets the alerts the converter callback to stop on an illegal sequence
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return int error code returned by ICU
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native int setCallbackEncode(long converterHandle, int onMalformedInput, int onUnmappableInput, byte[] subBytes, int length);
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Returns a thread safe clone of the converter
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @internal ICU 2.4
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final native long safeClone(long converterHandle);
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /** @internal ICU 2.4 */
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final int STOP_CALLBACK = 0;//CodingErrorAction.REPORT
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /** @internal ICU 2.4 */
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final int SKIP_CALLBACK = 1;//CodingErrorAction.IGNORE
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /** @internal ICU 2.4 */
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static final int SUBSTITUTE_CALLBACK = 2;//CodingErrorAction.REPLACE
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
416