/// <summary> /// Adds an input string and it's stemmer override output to this builder. /// </summary> /// <param name="input"> the input char sequence </param> /// <param name="output"> the stemmer override output char sequence </param> /// <returns> <code>false</code> iff the input has already been added to this builder otherwise <code>true</code>. </returns> public virtual bool add(ICharSequence input, ICharSequence output) { int length = input.length(); if (ignoreCase) { // convert on the fly to lowercase charsSpare.grow(length); char[] buffer = charsSpare.chars; for (int i = 0; i < length;) { i += char.toChars(char.ToLower(char.codePointAt(input, i)), buffer, i); } UnicodeUtil.UTF16toUTF8(buffer, 0, length, spare); } else { UnicodeUtil.UTF16toUTF8(input, 0, length, spare); } if (hash.add(spare) >= 0) { outputValues.Add(output); return(true); } return(false); }
/// <summary> /// Adds an input string and it's stemmer override output to this builder. /// </summary> /// <param name="input"> the input char sequence </param> /// <param name="output"> the stemmer override output char sequence </param> /// <returns> <code>false</code> iff the input has already been added to this builder otherwise <code>true</code>. </returns> public virtual bool add(ICharSequence input, ICharSequence output) { int length = input.length(); if (ignoreCase) { // convert on the fly to lowercase charsSpare.grow(length); char[] buffer = charsSpare.chars; for (int i = 0; i < length;) { i += char.toChars(char.ToLower(char.codePointAt(input, i)), buffer, i); } UnicodeUtil.UTF16toUTF8(buffer, 0, length, spare); } else { UnicodeUtil.UTF16toUTF8(input, 0, length, spare); } if (hash.add(spare) >= 0) { outputValues.Add(output); return true; } return false; }