1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project******************************************************************************* 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* Copyright (C) 1996-2005, 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******************************************************************************* 8ccb8b92211a3e87acaf6486c8d4423c2053b8b5eElliott Hughes*/ 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 103664d8839f0ba794f428119ee7f7304a66861da5Elliott Hughespackage java.nio.charset; 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 123664d8839f0ba794f428119ee7f7304a66861da5Elliott Hughesimport libcore.icu.NativeConverter; 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 14aefcd05768487c06f9455fda78a5d758f5f4119bNeil Fuller/** 15aefcd05768487c06f9455fda78a5d758f5f4119bNeil Fuller * This class is used from native code associated with {@link NativeConverter}. 16aefcd05768487c06f9455fda78a5d758f5f4119bNeil Fuller */ 174fd8ac297725190c6d81e9538b1faf7cfb0f5bb8Elliott Hughesfinal class CharsetICU extends Charset { 18bcf7c66e617ad0c33bb320184bb2401def517342Elliott Hughes private final String icuCanonicalName; 19c60bc1815dca549f3fb4e572f6aac749d7fa9fc6Elliott Hughes 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected CharsetICU(String canonicalName, String icuCanonName, String[] aliases) { 21bcf7c66e617ad0c33bb320184bb2401def517342Elliott Hughes super(canonicalName, aliases); 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project icuCanonicalName = icuCanonName; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 24c60bc1815dca549f3fb4e572f6aac749d7fa9fc6Elliott Hughes 25bcf7c66e617ad0c33bb320184bb2401def517342Elliott Hughes public CharsetDecoder newDecoder() { 267d52d787302b862019da41aa753646d88d43fd61Elliott Hughes return CharsetDecoderICU.newInstance(this, icuCanonicalName); 27bcf7c66e617ad0c33bb320184bb2401def517342Elliott Hughes } 28ccb8b92211a3e87acaf6486c8d4423c2053b8b5eElliott Hughes 29ccb8b92211a3e87acaf6486c8d4423c2053b8b5eElliott Hughes public CharsetEncoder newEncoder() { 307d52d787302b862019da41aa753646d88d43fd61Elliott Hughes return CharsetEncoderICU.newInstance(this, icuCanonicalName); 31ccb8b92211a3e87acaf6486c8d4423c2053b8b5eElliott Hughes } 32ccb8b92211a3e87acaf6486c8d4423c2053b8b5eElliott Hughes 33c60bc1815dca549f3fb4e572f6aac749d7fa9fc6Elliott Hughes public boolean contains(Charset cs) { 34c60bc1815dca549f3fb4e572f6aac749d7fa9fc6Elliott Hughes if (cs == null) { 35c60bc1815dca549f3fb4e572f6aac749d7fa9fc6Elliott Hughes return false; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } else if (this.equals(cs)) { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 397d52d787302b862019da41aa753646d88d43fd61Elliott Hughes return NativeConverter.contains(this.name(), cs.name()); 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 42