| /** |
| ******************************************************************************* |
| * Copyright (C) 1996-2005, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * |
| * |
| ******************************************************************************* |
| */ |
| |
| package com.ibm.icu4jni.text; |
| |
| /** |
| * Package static class for declaring all native methods for collation use. |
| * @author syn wee quek |
| * @internal ICU 2.4 |
| */ |
| |
| final class NativeCollation { |
| private NativeCollation() { |
| } |
| |
| /** |
| * Method to create a new C Collator using the argument locale rules. |
| * @param locale locale name |
| * @return new c collator |
| * @internal ICU 2.4 |
| */ |
| static native int openCollator(String locale); |
| |
| /** |
| * Method to create a new C Collator using the argument rules. |
| * @param rules , set of collation rules |
| * @param normalizationmode default normalization mode |
| * @param collationstrength default collation strength |
| * @return new c collator |
| * @internal ICU 2.4 |
| */ |
| static native int openCollatorFromRules(String rules, |
| int normalizationmode, |
| int collationstrength); |
| |
| /** |
| * Close a C collator |
| * Once closed, a UCollatorOld should not be used. |
| * @param collatoraddress The UCollatorOld to close |
| * @internal ICU 2.4 |
| */ |
| static native void closeCollator(int collatoraddress); |
| |
| /** |
| * Compare two strings. |
| * The strings will be compared using the normalization mode and options |
| * specified in openCollator or openCollatorFromRules |
| * @param collatoraddress address of the c collator |
| * @param source The source string. |
| * @param target The target string. |
| * @return result of the comparison, Collation.EQUAL, |
| * Collation.GREATER or Collation.LESS |
| * @internal ICU 2.4 |
| */ |
| static native int compare(int collatoraddress, String source, |
| String target); |
| |
| /** |
| * Get the normalization mode for this object. |
| * The normalization mode influences how strings are compared. |
| * @param collatoraddress |
| * @return normalization mode; one of the values from Normalization |
| * @internal ICU 2.4 |
| */ |
| static native int getNormalization(int collatoraddress); |
| |
| /** |
| * Set the normalization mode used int this object |
| * The normalization mode influences how strings are compared. |
| * @param collatoraddress the address of the C collator |
| * @param normalizationmode desired normalization mode; one of the values |
| * from Normalization |
| * @internal ICU 2.4 |
| */ |
| static native void setNormalization(int collatoraddress, |
| int normalizationmode); |
| |
| /** |
| * Get the collation rules from a UCollator. |
| * The rules will follow the rule syntax. |
| * @param collatoraddress the address of the C collator |
| * @return collation rules. |
| * @internal ICU 2.4 |
| */ |
| static native String getRules(int collatoraddress); |
| |
| /** |
| * Get a sort key for the argument string |
| * Sort keys may be compared using java.util.Arrays.equals |
| * @param collatoraddress address of the C collator |
| * @param source string for key to be generated |
| * @return sort key |
| * @internal ICU 2.4 |
| */ |
| static native byte[] getSortKey(int collatoraddress, String source); |
| |
| /** |
| * Gets the version information for collation. |
| * @param collatoraddress address of the C collator |
| * @return version information |
| * @internal ICU 2.4 |
| */ |
| // private native String getVersion(int collatoraddress); |
| |
| /** |
| * Universal attribute setter. |
| * @param collatoraddress address of the C collator |
| * @param type type of attribute to be set |
| * @param value attribute value |
| * @exception RuntimeException when error occurs while setting attribute value |
| * @internal ICU 2.4 |
| */ |
| static native void setAttribute(int collatoraddress, int type, int value); |
| |
| /** |
| * Universal attribute getter |
| * @param collatoraddress address of the C collator |
| * @param type type of attribute to be set |
| * @return attribute value |
| * @exception RuntimeException thrown when error occurs while getting attribute value |
| * @internal ICU 2.4 |
| */ |
| static native int getAttribute(int collatoraddress, int type); |
| |
| /** |
| * Thread safe cloning operation |
| * @param collatoraddress address of C collator to be cloned |
| * @return address of the new clone |
| * @exception RuntimeException thrown when error occurs while cloning |
| * @internal ICU 2.4 |
| */ |
| static native int safeClone(int collatoraddress); |
| |
| /** |
| * Create a CollationElementIterator object that will iterator over the |
| * elements in a string, using the collation rules defined in this |
| * RuleBasedCollator |
| * @param collatoraddress address of C collator |
| * @param source string to iterate over |
| * @return address of C collationelementiterator |
| * @internal ICU 2.4 |
| */ |
| static native int getCollationElementIterator(int collatoraddress, |
| String source); |
| |
| |
| // collationelementiterator methods ------------------------------------- |
| |
| /** |
| * Close a C collation element iterator. |
| * @param address of C collation element iterator to close. |
| * @internal ICU 2.4 |
| */ |
| static native void closeElements(int address); |
| |
| /** |
| * Reset the collation elements to their initial state. |
| * This will move the 'cursor' to the beginning of the text. |
| * @param address of C collation element iterator to reset. |
| * @internal ICU 2.4 |
| */ |
| static native void reset(int address); |
| |
| /** |
| * Get the ordering priority of the next collation element in the text. |
| * A single character may contain more than one collation element. |
| * @param address if C collation elements containing the text. |
| * @return next collation elements ordering, or NULLORDER if the end of the |
| * text is reached. |
| * @internal ICU 2.4 |
| */ |
| static native int next(int address); |
| |
| /** |
| * Get the ordering priority of the previous collation element in the text. |
| * A single character may contain more than one collation element. |
| * @param address of the C collation element iterator containing the text. |
| * @return previous collation element ordering, or NULLORDER if the end of |
| * the text is reached. |
| * @internal ICU 2.4 |
| */ |
| static native int previous(int address); |
| |
| /** |
| * Get the maximum length of any expansion sequences that end with the |
| * specified comparison order. |
| * @param address of the C collation element iterator containing the text. |
| * @param order collation order returned by previous or next. |
| * @return maximum length of any expansion sequences ending with the |
| * specified order. |
| * @internal ICU 2.4 |
| */ |
| static native int getMaxExpansion(int address, int order); |
| |
| /** |
| * Set the text containing the collation elements. |
| * @param address of the C collation element iterator to be set |
| * @param source text containing the collation elements. |
| * @internal ICU 2.4 |
| */ |
| static native void setText(int address, String source); |
| |
| /** |
| * Get the offset of the current source character. |
| * This is an offset into the text of the character containing the current |
| * collation elements. |
| * @param address of the C collation elements iterator to query. |
| * @return offset of the current source character. |
| * @internal ICU 2.4 |
| */ |
| static native int getOffset(int address); |
| |
| /** |
| * Set the offset of the current source character. |
| * This is an offset into the text of the character to be processed. |
| * @param address of the C collation element iterator to set. |
| * @param offset The desired character offset. |
| * @internal ICU 2.4 |
| */ |
| static native void setOffset(int address, int offset); |
| } |