Class ICUData


  • public final class ICUData
    extends java.lang.Object
    Provides access to ICU data files as InputStreams. Implements security checking.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ICU_BASE_NAME
      The base name of ICU data to be used with ClassLoader.getResourceAsStream(), ICUResourceBundle.getBundleInstance() etc.
      static java.lang.String ICU_BRKITR_BASE_NAME
      The base name of rbbi data to be used with getBundleInstance API
      static java.lang.String ICU_BRKITR_NAME
      The base name of rbbi data to be used with getData API
      static java.lang.String ICU_BUNDLE
      The data path to be used with Class.getResourceAsStream().
      static java.lang.String ICU_COLLATION_BASE_NAME
      The base name of collation data to be used with getBundleInstance API
      static java.lang.String ICU_CURR_BASE_NAME  
      (package private) static java.lang.String ICU_DATA_PATH
      The data path to be used with getBundleInstance API
      static java.lang.String ICU_LANG_BASE_NAME  
      static java.lang.String ICU_RBNF_BASE_NAME
      The base name of rbnf data to be used with getBundleInstance API
      static java.lang.String ICU_REGION_BASE_NAME  
      static java.lang.String ICU_TRANSLIT_BASE_NAME
      The base name of transliterator data to be used with getBundleInstance API
      static java.lang.String ICU_UNIT_BASE_NAME  
      static java.lang.String ICU_ZONE_BASE_NAME  
      private static boolean logBinaryDataFromInputStream
      For testing (otherwise false): When reading an InputStream from a Class or ClassLoader (that is, not from a file), log when the stream contains ICU binary data.
      private static java.util.logging.Logger logger  
      (package private) static java.lang.String PACKAGE_NAME
      The ICU data package name.
    • Constructor Summary

      Constructors 
      Constructor Description
      ICUData()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static void checkStreamForBinaryData​(java.io.InputStream is, java.lang.String resourceName)  
      static boolean exists​(java.lang.String resourceName)  
      static java.io.InputStream getRequiredStream​(java.lang.Class<?> root, java.lang.String resourceName)
      Convenience method that calls getStream(root, resourceName, true).
      static java.io.InputStream getRequiredStream​(java.lang.ClassLoader loader, java.lang.String resourceName)  
      static java.io.InputStream getRequiredStream​(java.lang.String resourceName)
      Convenience method that calls getStream(ICUData.class, resourceName, true).
      static java.io.InputStream getStream​(java.lang.Class<?> root, java.lang.String resourceName)
      Convenience override that calls getStream(root, resourceName, false); Returns null if the resource could not be found.
      private static java.io.InputStream getStream​(java.lang.Class<?> root, java.lang.String resourceName, boolean required)  
      static java.io.InputStream getStream​(java.lang.ClassLoader loader, java.lang.String resourceName)  
      (package private) static java.io.InputStream getStream​(java.lang.ClassLoader loader, java.lang.String resourceName, boolean required)
      Should be called only from ICUBinary.getData() or from convenience overloads here.
      static java.io.InputStream getStream​(java.lang.String resourceName)
      Convenience override that calls getStream(ICUData.class, resourceName, false); Returns null if the resource could not be found.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ICU_DATA_PATH

        static final java.lang.String ICU_DATA_PATH
        The data path to be used with getBundleInstance API
        See Also:
        Constant Field Values
      • PACKAGE_NAME

        static final java.lang.String PACKAGE_NAME
        The ICU data package name. This is normally the name of the .dat package, and the prefix (plus '/') of the package entry names. Not used when loading from resources packaged in the .jar.
        See Also:
        Constant Field Values
      • ICU_BUNDLE

        public static final java.lang.String ICU_BUNDLE
        The data path to be used with Class.getResourceAsStream().
        See Also:
        Constant Field Values
      • ICU_BASE_NAME

        public static final java.lang.String ICU_BASE_NAME
        The base name of ICU data to be used with ClassLoader.getResourceAsStream(), ICUResourceBundle.getBundleInstance() etc.
        See Also:
        Constant Field Values
      • ICU_COLLATION_BASE_NAME

        public static final java.lang.String ICU_COLLATION_BASE_NAME
        The base name of collation data to be used with getBundleInstance API
        See Also:
        Constant Field Values
      • ICU_BRKITR_NAME

        public static final java.lang.String ICU_BRKITR_NAME
        The base name of rbbi data to be used with getData API
        See Also:
        Constant Field Values
      • ICU_BRKITR_BASE_NAME

        public static final java.lang.String ICU_BRKITR_BASE_NAME
        The base name of rbbi data to be used with getBundleInstance API
        See Also:
        Constant Field Values
      • ICU_RBNF_BASE_NAME

        public static final java.lang.String ICU_RBNF_BASE_NAME
        The base name of rbnf data to be used with getBundleInstance API
        See Also:
        Constant Field Values
      • ICU_TRANSLIT_BASE_NAME

        public static final java.lang.String ICU_TRANSLIT_BASE_NAME
        The base name of transliterator data to be used with getBundleInstance API
        See Also:
        Constant Field Values
      • ICU_LANG_BASE_NAME

        public static final java.lang.String ICU_LANG_BASE_NAME
        See Also:
        Constant Field Values
      • ICU_CURR_BASE_NAME

        public static final java.lang.String ICU_CURR_BASE_NAME
        See Also:
        Constant Field Values
      • ICU_REGION_BASE_NAME

        public static final java.lang.String ICU_REGION_BASE_NAME
        See Also:
        Constant Field Values
      • ICU_ZONE_BASE_NAME

        public static final java.lang.String ICU_ZONE_BASE_NAME
        See Also:
        Constant Field Values
      • ICU_UNIT_BASE_NAME

        public static final java.lang.String ICU_UNIT_BASE_NAME
        See Also:
        Constant Field Values
      • logBinaryDataFromInputStream

        private static final boolean logBinaryDataFromInputStream
        For testing (otherwise false): When reading an InputStream from a Class or ClassLoader (that is, not from a file), log when the stream contains ICU binary data. This cannot be ICUConfig'ured because ICUConfig calls ICUData.getStream() to read the properties file, so we would get a circular dependency in the class initialization.
        See Also:
        Constant Field Values
      • logger

        private static final java.util.logging.Logger logger
    • Constructor Detail

      • ICUData

        public ICUData()
    • Method Detail

      • exists

        public static boolean exists​(java.lang.String resourceName)
      • getStream

        private static java.io.InputStream getStream​(java.lang.Class<?> root,
                                                     java.lang.String resourceName,
                                                     boolean required)
      • getStream

        static java.io.InputStream getStream​(java.lang.ClassLoader loader,
                                             java.lang.String resourceName,
                                             boolean required)
        Should be called only from ICUBinary.getData() or from convenience overloads here.
      • checkStreamForBinaryData

        private static void checkStreamForBinaryData​(java.io.InputStream is,
                                                     java.lang.String resourceName)
      • getStream

        public static java.io.InputStream getStream​(java.lang.ClassLoader loader,
                                                    java.lang.String resourceName)
      • getRequiredStream

        public static java.io.InputStream getRequiredStream​(java.lang.ClassLoader loader,
                                                            java.lang.String resourceName)
      • getStream

        public static java.io.InputStream getStream​(java.lang.String resourceName)
        Convenience override that calls getStream(ICUData.class, resourceName, false); Returns null if the resource could not be found.
      • getRequiredStream

        public static java.io.InputStream getRequiredStream​(java.lang.String resourceName)
        Convenience method that calls getStream(ICUData.class, resourceName, true).
        Throws:
        java.util.MissingResourceException - if the resource could not be found
      • getStream

        public static java.io.InputStream getStream​(java.lang.Class<?> root,
                                                    java.lang.String resourceName)
        Convenience override that calls getStream(root, resourceName, false); Returns null if the resource could not be found.
      • getRequiredStream

        public static java.io.InputStream getRequiredStream​(java.lang.Class<?> root,
                                                            java.lang.String resourceName)
        Convenience method that calls getStream(root, resourceName, true).
        Throws:
        java.util.MissingResourceException - if the resource could not be found