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