/// <summary> /// Create a new <see cref="ICUTransformFilter"/> that transforms text on the given stream. /// </summary> /// <param name="input"><see cref="TokenStream"/> to filter.</param> /// <param name="transform">Transliterator to transform the text.</param> public ICUTransformFilter(TokenStream input, Transliterator transform) : base(input) { this.transform = transform; this.termAtt = AddAttribute <ICharTermAttribute>(); /* * This is cheating, but speeds things up a lot. * If we wanted to use pkg-private APIs we could probably do better. */ #pragma warning disable 612, 618 if (transform.Filter == null && transform is RuleBasedTransliterator) #pragma warning restore 612, 618 { UnicodeSet sourceSet = transform.GetSourceSet(); if (sourceSet != null && sourceSet.Any()) { transform.Filter = sourceSet; } } }