public boolean getCanonStartSet(int c, UnicodeSet set) {
        int canonValue=canonIterData.get(c)&~CANON_NOT_SEGMENT_STARTER;
        if(canonValue==0) {
            return false;
        }
        set.clear();
        int value=canonValue&CANON_VALUE_MASK;
        if((canonValue&CANON_HAS_SET)!=0) {
            set.addAll(canonStartSets.get(value));
        } else if(value!=0) {
            set.add(value);
        }
        if((canonValue&CANON_HAS_COMPOSITIONS)!=0) {
            int norm16=getNorm16(c);
            if(norm16==JAMO_L) {
                int syllable=Hangul.HANGUL_BASE+(c-Hangul.JAMO_L_BASE)*Hangul.JAMO_VT_COUNT;
                set.add(syllable, syllable+Hangul.JAMO_VT_COUNT-1);
            } else {
                addComposites(getCompositionsList(norm16), set);
            }
        }
        return true;
    }
public boolean getCanonStartSet ( int c , UnicodeSet set ) { int canonValue = canonIterData . get ( c ) & ~ CANON_NOT_SEGMENT_STARTER ; if ( canonValue == 0 ) { return false ; } set . clear ( ) ; int value = canonValue & CANON_VALUE_MASK ; if ( ( canonValue & CANON_HAS_SET ) != 0 ) { set . addAll ( canonStartSets . get ( value ) ) ; } else if ( value != 0 ) { set . add ( value ) ; } if ( ( canonValue & CANON_HAS_COMPOSITIONS ) != 0 ) { int norm16 = getNorm16 ( c ) ; if ( norm16 == JAMO_L ) { int syllable = Hangul . HANGUL_BASE + ( c - Hangul . JAMO_L_BASE ) * Hangul . JAMO_VT_COUNT ; set . add ( syllable , syllable + Hangul . JAMO_VT_COUNT - 1 ) ; } else { addComposites ( getCompositionsList ( norm16 ) , set ) ; } } return true ; }
Returns true if there are characters whose decomposition starts with c.
If so, then the set is cleared and then filled with those characters.
<b>{@link #ensureCanonIterData()} must have been called before this method,
or else this method will crash.</b>
@param c A Unicode code point.
@param set A UnicodeSet to receive the characters whose decompositions
start with c, if there are any.
@return true if there are characters whose decomposition starts with c.