Class ICUData
java.lang.Object
com.ibm.icu.impl.ICUData
Provides access to ICU data files as InputStreams. Implements security checking.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe base name of ICU data to be used with ClassLoader.getResourceAsStream(), ICUResourceBundle.getBundleInstance() etc.static final StringThe base name of rbbi data to be used with getBundleInstance APIstatic final StringThe base name of rbbi data to be used with getData APIstatic final StringThe data path to be used with Class.getResourceAsStream().static final StringThe base name of collation data to be used with getBundleInstance APIstatic final String(package private) static final StringThe data path to be used with getBundleInstance APIstatic final Stringstatic final StringThe base name of rbnf data to be used with getBundleInstance APIstatic final Stringstatic final StringThe base name of transliterator data to be used with getBundleInstance APIstatic final Stringstatic final Stringprivate static final booleanFor 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 final Logger(package private) static final StringThe ICU data package name. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidcheckStreamForBinaryData(InputStream is, String resourceName) static booleanstatic InputStreamgetRequiredStream(Class<?> root, String resourceName) Convenience method that calls getStream(root, resourceName, true).static InputStreamgetRequiredStream(ClassLoader loader, String resourceName) static InputStreamgetRequiredStream(String resourceName) Convenience method that calls getStream(ICUData.class, resourceName, true).static InputStreamConvenience override that calls getStream(root, resourceName, false); Returns null if the resource could not be found.private static InputStreamstatic InputStreamgetStream(ClassLoader loader, String resourceName) (package private) static InputStreamgetStream(ClassLoader loader, String resourceName, boolean required) Should be called only from ICUBinary.getData() or from convenience overloads here.static InputStreamConvenience override that calls getStream(ICUData.class, resourceName, false); Returns null if the resource could not be found.
-
Field Details
-
ICU_DATA_PATH
-
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:
-
ICU_BUNDLE
The data path to be used with Class.getResourceAsStream().- See Also:
-
ICU_BASE_NAME
The base name of ICU data to be used with ClassLoader.getResourceAsStream(), ICUResourceBundle.getBundleInstance() etc.- See Also:
-
ICU_COLLATION_BASE_NAME
The base name of collation data to be used with getBundleInstance API- See Also:
-
ICU_BRKITR_NAME
The base name of rbbi data to be used with getData API- See Also:
-
ICU_BRKITR_BASE_NAME
The base name of rbbi data to be used with getBundleInstance API- See Also:
-
ICU_RBNF_BASE_NAME
The base name of rbnf data to be used with getBundleInstance API- See Also:
-
ICU_TRANSLIT_BASE_NAME
The base name of transliterator data to be used with getBundleInstance API- See Also:
-
ICU_LANG_BASE_NAME
- See Also:
-
ICU_CURR_BASE_NAME
- See Also:
-
ICU_REGION_BASE_NAME
- See Also:
-
ICU_ZONE_BASE_NAME
- See Also:
-
ICU_UNIT_BASE_NAME
- See Also:
-
logBinaryDataFromInputStream
private static final boolean logBinaryDataFromInputStreamFor 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:
-
logger
-
-
Constructor Details
-
ICUData
public ICUData()
-
-
Method Details
-
exists
-
getStream
-
getStream
Should be called only from ICUBinary.getData() or from convenience overloads here. -
checkStreamForBinaryData
-
getStream
-
getRequiredStream
-
getStream
Convenience override that calls getStream(ICUData.class, resourceName, false); Returns null if the resource could not be found. -
getRequiredStream
Convenience method that calls getStream(ICUData.class, resourceName, true).- Throws:
MissingResourceException- if the resource could not be found
-
getStream
Convenience override that calls getStream(root, resourceName, false); Returns null if the resource could not be found. -
getRequiredStream
Convenience method that calls getStream(root, resourceName, true).- Throws:
MissingResourceException- if the resource could not be found
-