Package com.ibm.icu.impl
Class UPropertyAliases
java.lang.Object
com.ibm.icu.impl.UPropertyAliases
Wrapper for the pnames.icu binary data file. This data file is
imported from icu4c. It contains property and property value
aliases from the UCD files PropertyAliases.txt and
PropertyValueAliases.txt. The file is built by the icu4c tool
genpname. It must be an ASCII big-endian file to be
usable in icu4j.
This class performs two functions.
(1) It can import the flat binary data into usable objects.
(2) It provides an API to access the tree of objects.
Needless to say, this class is tightly coupled to the binary format
of icu4c's pnames.icu file.
Each time a UPropertyAliases is constructed, the pnames.icu file is
read, parsed, and data structures assembled. Clients should create one
singleton instance and cache it.
- Since:
- ICU 2.4
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate byte[]private static final intstatic final UPropertyAliasesprivate static final UPropertyAliases.IsAcceptableprivate static final intprivate static final intprivate static final intprivate static final intprivate Stringprivate int[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static intasciiToLowercase(int c) static intCompare two property names, returning invalid input: '<'0, 0, or >0.private booleancontainsName(BytesTrie trie, CharSequence name) private intfindProperty(int property) private intfindPropertyValueNameGroup(int valueMapIndex, int value) private StringgetName(int nameGroupsIndex, int nameIndex) intgetPropertyEnum(CharSequence alias) Returns a property enum given one of its property names.getPropertyName(int property, int nameChoice) Returns a property name given a property enum.private intgetPropertyOrValueEnum(int bytesTrieOffset, CharSequence alias) intgetPropertyValueEnum(int property, CharSequence alias) Returns a value enum given a property enum and one of its value names.intgetPropertyValueEnumNoThrow(int property, CharSequence alias) Returns a value enum given a property enum and one of its value names.getPropertyValueName(int property, int value, int nameChoice) Returns a value name given a property enum and a value enum.private voidload(ByteBuffer bytes)
-
Field Details
-
IX_VALUE_MAPS_OFFSET
private static final int IX_VALUE_MAPS_OFFSET- See Also:
-
IX_BYTE_TRIES_OFFSET
private static final int IX_BYTE_TRIES_OFFSET- See Also:
-
IX_NAME_GROUPS_OFFSET
private static final int IX_NAME_GROUPS_OFFSET- See Also:
-
IX_RESERVED3_OFFSET
private static final int IX_RESERVED3_OFFSET- See Also:
-
valueMaps
private int[] valueMaps -
bytesTries
private byte[] bytesTries -
nameGroups
-
IS_ACCEPTABLE
-
DATA_FORMAT
private static final int DATA_FORMAT- See Also:
-
INSTANCE
-
-
Constructor Details
-
UPropertyAliases
- Throws:
IOException
-
-
Method Details
-
load
- Throws:
IOException
-
findProperty
private int findProperty(int property) -
findPropertyValueNameGroup
private int findPropertyValueNameGroup(int valueMapIndex, int value) -
getName
-
asciiToLowercase
private static int asciiToLowercase(int c) -
containsName
-
getPropertyName
Returns a property name given a property enum. Multiple names may be available for each property; the nameChoice selects among them. -
getPropertyValueName
Returns a value name given a property enum and a value enum. Multiple names may be available for each value; the nameChoice selects among them. -
getPropertyOrValueEnum
-
getPropertyEnum
Returns a property enum given one of its property names. If the property name is not known, this method returns UProperty.UNDEFINED. -
getPropertyValueEnum
Returns a value enum given a property enum and one of its value names. -
getPropertyValueEnumNoThrow
Returns a value enum given a property enum and one of its value names. Does not throw.- Returns:
- value enum, or UProperty.UNDEFINED if not defined for that property
-
compare
Compare two property names, returning invalid input: '<'0, 0, or >0. The comparison is that described as "loose" matching in the Property*Aliases.txt files.
-