Search in sources :

Example 1 with FCDIterCollationIterator

use of android.icu.impl.coll.FCDIterCollationIterator in project j2objc by google.

the class CollationTest method TestFCD.

@Test
public void TestFCD() {
    CollationData data = CollationRoot.getData();
    // Input string, not FCD.
    StringBuilder buf = new StringBuilder();
    buf.append("\u0308\u00e1\u0062\u0301\u0327\u0430\u0062").appendCodePoint(// MUSICAL SYMBOL QUARTER NOTE=1D158 1D165, ccc=0, 216
    0x1D15F).append(// ccc=202, 230
    "\u0327\u0308").appendCodePoint(// MUSICAL SYMBOL COMBINING AUGMENTATION DOT, ccc=226
    0x1D16D).appendCodePoint(0x1D15F).appendCodePoint(0x1D16D).append("\uac01").append(// Character with tccc!=0 decomposed together with mis-ordered sequence.
    "\u00e7").appendCodePoint(0x1D16D).appendCodePoint(0x1D165).append(// Character with tccc!=0 decomposed together with decomposed sequence.
    "\u00e1").append(// Tibetan composite vowels must be decomposed.
    "\u0f73\u0f75").append("\u4e00\u0f81");
    String s = buf.toString();
    // Expected code points.
    int[] cp = { 0x308, 0xe1, 0x62, 0x327, 0x301, 0x430, 0x62, 0x1D158, 0x327, 0x1D165, 0x1D16D, 0x308, 0x1D15F, 0x1D16D, 0xac01, 0x63, 0x327, 0x1D165, 0x1D16D, 0x61, 0xf71, 0xf71, 0xf72, 0xf74, 0x301, 0x4e00, 0xf71, 0xf80 };
    FCDUTF16CollationIterator u16ci = new FCDUTF16CollationIterator(data, false, s, 0);
    CodePointIterator cpi = new CodePointIterator(cp);
    checkFCD("FCDUTF16CollationIterator", u16ci, cpi);
    cpi.resetToStart();
    UCharacterIterator iter = UCharacterIterator.getInstance(s);
    FCDIterCollationIterator uici = new FCDIterCollationIterator(data, false, iter, 0);
    checkFCD("FCDIterCollationIterator", uici, cpi);
}
Also used : FCDUTF16CollationIterator(android.icu.impl.coll.FCDUTF16CollationIterator) UCharacterIterator(android.icu.text.UCharacterIterator) CollationData(android.icu.impl.coll.CollationData) FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) Test(org.junit.Test)

Example 2 with FCDIterCollationIterator

use of android.icu.impl.coll.FCDIterCollationIterator in project j2objc by google.

the class CollationElementIterator method setText.

/**
 * Set a new source string iterator for iteration, and reset the
 * offset to the beginning of the text.
 *
 * @param source the new source string iterator for iteration.
 */
public void setText(CharacterIterator source) {
    // Note: In C++, we just setText(source.getText()).
    // In Java, we actually operate on a character iterator.
    // TODO: do we need to remember the iterator in a field?
    // TODO: apparently we don't clone a CharacterIterator in Java,
    // we only clone the text for a UCharacterIterator?? see the old code in the constructors
    UCharacterIterator src = new CharacterIteratorWrapper(source);
    src.setToStart();
    // TODO: do we need to remember the source string in a field?
    string_ = src.getText();
    CollationIterator newIter;
    boolean numeric = rbc_.settings.readOnly().isNumeric();
    if (rbc_.settings.readOnly().dontCheckFCD()) {
        newIter = new IterCollationIterator(rbc_.data, numeric, src);
    } else {
        newIter = new FCDIterCollationIterator(rbc_.data, numeric, src, 0);
    }
    iter_ = newIter;
    otherHalf_ = 0;
    dir_ = 0;
}
Also used : FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) UTF16CollationIterator(android.icu.impl.coll.UTF16CollationIterator) CollationIterator(android.icu.impl.coll.CollationIterator) FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) FCDUTF16CollationIterator(android.icu.impl.coll.FCDUTF16CollationIterator) IterCollationIterator(android.icu.impl.coll.IterCollationIterator) CharacterIteratorWrapper(android.icu.impl.CharacterIteratorWrapper) FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) IterCollationIterator(android.icu.impl.coll.IterCollationIterator)

Example 3 with FCDIterCollationIterator

use of android.icu.impl.coll.FCDIterCollationIterator in project j2objc by google.

the class CollationElementIterator method setText.

/**
 * Set a new source string iterator for iteration, and reset the
 * offset to the beginning of the text.
 *
 * <p>The source iterator's integrity will be preserved since a new copy
 * will be created for use.
 * @param source the new source string iterator for iteration.
 */
public void setText(UCharacterIterator source) {
    // TODO: do we need to remember the source string in a field?
    string_ = source.getText();
    // Note: In C++, we just setText(source.getText()).
    // In Java, we actually operate on a character iterator.
    // (The old code apparently did so only for a CharacterIterator;
    // for a UCharacterIterator it also just used source.getText()).
    // TODO: do we need to remember the cloned iterator in a field?
    UCharacterIterator src;
    try {
        src = (UCharacterIterator) source.clone();
    } catch (CloneNotSupportedException e) {
        // Fall back to ICU 52 behavior of iterating over the text contents
        // of the UCharacterIterator.
        setText(source.getText());
        return;
    }
    src.setToStart();
    CollationIterator newIter;
    boolean numeric = rbc_.settings.readOnly().isNumeric();
    if (rbc_.settings.readOnly().dontCheckFCD()) {
        newIter = new IterCollationIterator(rbc_.data, numeric, src);
    } else {
        newIter = new FCDIterCollationIterator(rbc_.data, numeric, src, 0);
    }
    iter_ = newIter;
    otherHalf_ = 0;
    dir_ = 0;
}
Also used : FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) UTF16CollationIterator(android.icu.impl.coll.UTF16CollationIterator) CollationIterator(android.icu.impl.coll.CollationIterator) FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) FCDUTF16CollationIterator(android.icu.impl.coll.FCDUTF16CollationIterator) IterCollationIterator(android.icu.impl.coll.IterCollationIterator) FCDIterCollationIterator(android.icu.impl.coll.FCDIterCollationIterator) IterCollationIterator(android.icu.impl.coll.IterCollationIterator)

Aggregations

FCDIterCollationIterator (android.icu.impl.coll.FCDIterCollationIterator)3 FCDUTF16CollationIterator (android.icu.impl.coll.FCDUTF16CollationIterator)3 CollationIterator (android.icu.impl.coll.CollationIterator)2 IterCollationIterator (android.icu.impl.coll.IterCollationIterator)2 UTF16CollationIterator (android.icu.impl.coll.UTF16CollationIterator)2 CharacterIteratorWrapper (android.icu.impl.CharacterIteratorWrapper)1 CollationData (android.icu.impl.coll.CollationData)1 UCharacterIterator (android.icu.text.UCharacterIterator)1 Test (org.junit.Test)1