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 int
static final UPropertyAliases
private static final UPropertyAliases.IsAcceptable
private static final int
private static final int
private static final int
private static final int
private String
private int[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static int
asciiToLowercase
(int c) static int
Compare two property names, returning invalid input: '<'0, 0, or >0.private boolean
containsName
(BytesTrie trie, CharSequence name) private int
findProperty
(int property) private int
findPropertyValueNameGroup
(int valueMapIndex, int value) private String
getName
(int nameGroupsIndex, int nameIndex) int
getPropertyEnum
(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 int
getPropertyOrValueEnum
(int bytesTrieOffset, CharSequence alias) int
getPropertyValueEnum
(int property, CharSequence alias) Returns a value enum given a property enum and one of its value names.int
getPropertyValueEnumNoThrow
(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 void
load
(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.
-