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