Class CharsetProviderICU

java.lang.Object
java.nio.charset.spi.CharsetProvider
com.ibm.icu.charset.CharsetProviderICU

public final class CharsetProviderICU extends CharsetProvider
A concrete subclass of CharsetProvider for loading and providing charset converters in ICU.
  • Field Details

    • icuCharsets

      private static List<Charset> icuCharsets
      List of available ICU Charsets, empty during static initialization. Not a Set or Map, so that we can add different Charset objects with the same name(), which means that they are .equals(). See ICU ticket #11493.
  • Constructor Details

    • CharsetProviderICU

      public CharsetProviderICU()
      Default constructor
  • Method Details

    • charsetForName

      public final Charset charsetForName(String charsetName)
      Constructs a Charset for the given charset name. Implements the abstract method of super class.
      Specified by:
      charsetForName in class CharsetProvider
      Parameters:
      charsetName - charset name
      Returns:
      Charset object for the given charset name, null if unsupported
    • charsetForName

      public final Charset charsetForName(String charsetName, String classPath)
      Constructs a charset for the given ICU conversion table from the specified class path. Example use: cnv = CharsetProviderICU.charsetForName("myConverter", "com/myCompany/myDataPackage");. In this example myConverter.cnv would exist in the com/myCompany/myDataPackage Java package. Conversion tables can be made with ICU4C's makeconv tool. This function allows you to allows you to load user defined conversion tables that are outside of ICU's core data.
      Parameters:
      charsetName - The name of the charset conversion table.
      classPath - The class path that contain the conversion table.
      Returns:
      charset object for the given charset name, null if unsupported
    • charsetForName

      public Charset charsetForName(String charsetName, String classPath, ClassLoader loader)
      Constructs a charset for the given ICU conversion table from the specified class path. This function is similar to charsetForName(String, String).
      Parameters:
      charsetName - The name of the charset conversion table.
      classPath - The class path that contain the conversion table.
      loader - the class object from which to load the charset conversion table
      Returns:
      charset object for the given charset name, null if unsupported
    • getICUCanonicalName

      @Deprecated public static final String getICUCanonicalName(String enc) throws UnsupportedCharsetException
      Deprecated.
      This API is ICU internal only.
      Gets the canonical name of the converter as defined by Java
      Parameters:
      enc - converter name
      Returns:
      canonical name of the converter
      Throws:
      UnsupportedCharsetException
    • getCharset

      private static final Charset getCharset(String icuCanonicalName, String optionsString) throws IOException
      Throws:
      IOException
    • getJavaCanonicalName

      @Deprecated public static String getJavaCanonicalName(String charsetName)
      Deprecated.
      This API is ICU internal only.
      Gets the canonical name of the converter as defined by Java
      Parameters:
      charsetName - converter name
      Returns:
      canonical name of the converter
    • getAliases

      @Deprecated private static final String[] getAliases(String encName) throws IOException
      Deprecated.
      This API is ICU internal only.
      Gets the aliases associated with the converter name
      Parameters:
      encName - converter name
      Returns:
      converter names as elements in an object array
      Throws:
      IOException
    • loadAvailableICUCharsets

      private static final void loadAvailableICUCharsets()
      Lazy-init the icuCharsets list. Could be done during static initialization if constructing all of the Charsets were cheap enough. See ICU ticket #11481.
    • charsets

      public final Iterator<Charset> charsets()
      Returns an iterator for the available ICU Charsets. Implements the abstract method of super class.
      Specified by:
      charsets in class CharsetProvider
      Returns:
      the Charset iterator
    • getAvailableNames

      @Deprecated public static final String[] getAvailableNames()
      Deprecated.
      This API is ICU internal only.
      Gets the canonical names of available ICU converters
      Returns:
      array of available converter names
    • getAllNames

      @Deprecated public static final String[] getAllNames()
      Deprecated.
      This API is ICU internal only.
      Return all names available
      Returns:
      String[] an array of all available names