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