1 /** 2 ******************************************************************************* 3 * Copyright (C) 1996-2005, International Business Machines Corporation and * 4 * others. All Rights Reserved. * 5 ******************************************************************************* 6 * 7 ******************************************************************************* 8 */ 9 10 package com.android.icu.charset; 11 12 import java.nio.charset.Charset; 13 import java.nio.charset.CharsetDecoder; 14 import java.nio.charset.CharsetEncoder; 15 16 /** 17 * This class is used from native code associated with {@link NativeConverter}. 18 */ 19 public final class CharsetICU extends Charset { 20 private final String icuCanonicalName; 21 22 /** 23 * Called by native codes. 24 */ CharsetICU(String canonicalName, String icuCanonName, String[] aliases)25 protected CharsetICU(String canonicalName, String icuCanonName, String[] aliases) { 26 super(canonicalName, aliases); 27 icuCanonicalName = icuCanonName; 28 } 29 30 @Override newDecoder()31 public CharsetDecoder newDecoder() { 32 return CharsetDecoderICU.newInstance(this, icuCanonicalName); 33 } 34 35 @Override newEncoder()36 public CharsetEncoder newEncoder() { 37 return CharsetEncoderICU.newInstance(this, icuCanonicalName); 38 } 39 40 @Override contains(Charset cs)41 public boolean contains(Charset cs) { 42 if (cs == null) { 43 return false; 44 } else if (this.equals(cs)) { 45 return true; 46 } 47 return NativeConverter.contains(this.name(), cs.name()); 48 } 49 } 50