/** * Constructs a new compound transliterator given an array of * transliterators. The array of transliterators may be of any * length, including zero or one, however, useful compound * transliterators have at least two components. * @param transliterators array of <code>Transliterator</code> * objects * @param transliteratorCount The number of * <code>Transliterator</code> objects in transliterators. * @param filter the filter. Any character for which * <tt>filter.contains()</tt> returns <tt>false</tt> will not be * altered by this transliterator. If <tt>filter</tt> is * <tt>null</tt> then no filtering is applied. */ CompoundTransliterator::CompoundTransliterator( Transliterator* const transliterators[], int32_t transliteratorCount, UnicodeFilter* adoptedFilter) : Transliterator(joinIDs(transliterators, transliteratorCount), adoptedFilter), trans(0), count(0), compoundRBTIndex(-1) { setTransliterators(transliterators, transliteratorCount); }
/** * Constructs a new compound transliterator given an array of * transliterators. The array of transliterators may be of any * length, including zero or one, however, useful compound * transliterators have at least two components. * @param transliterators array of <code>Transliterator</code> * objects * @param transliteratorCount The number of * <code>Transliterator</code> objects in transliterators. * @param filter the filter. Any character for which * <tt>filter.contains()</tt> returns <tt>false</tt> will not be * altered by this transliterator. If <tt>filter</tt> is * <tt>null</tt> then no filtering is applied. */ CompoundTransliterator::CompoundTransliterator( Transliterator* const transliterators[], int32_t transliteratorCount, UnicodeFilter* adoptedFilter) : Transliterator(joinIDs(transliterators, transliteratorCount), adoptedFilter), trans(0), count(0), numAnonymousRBTs(0) { setTransliterators(transliterators, transliteratorCount); }
void CompoundTransliterator::adoptTransliterators(Transliterator* adoptedTransliterators[], int32_t transCount) { // First free trans[] and set count to zero. Once this is done, // orphan the filter. Set up the new trans[]. freeTransliterators(); trans = adoptedTransliterators; count = transCount; computeMaximumContextLength(); setID(joinIDs(trans, count)); }