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